Segala sesuatu yang ditulis di bawah ini, tidak pernah mengklaim sebagai kebenaran absolut, tetapi masih mewakili beberapa model yang membantu saya secara pribadi menemukan cara untuk menulis kode yang sedikit lebih baik.. — . , . , , , , — . « » — , ? ? , ? . . — , .
, . , .
. , 7±2 . "
" . 4±1, . — , , .
, , . : , , — . . , — , , . . , «» « » — .

. .

, , . . « ». — - . , , «» — .
, , , . , . , - « », - .
, —
. , . , — - , , . .
- .
: , , , . , , . , . . .
. . , . : . , .
-, . , «», . , . : l 1, 0 . — . «» — , ?
. - — . , , , , « » . - , - — . : — .
. , . « » . — - - « ».
, . , , . , , , , , , .
for:
- A. for(i=0 to N)
- B. for(theElementIndex=0 to theNumberOfElementsInTheList)
?
. ? ,
B , ( ) . , , .
( , - ):
- A. strings.IndexOf(x, y)
- B. s.IndexOf(x, y)
- C. std.utils.strings.IndexOf(x, y)
- D. IndexOf(x, y)
, «s» — , «, , ».
, std.utils.strings — , , , , .
D , , , .
, , , IndexOf - . , «strings» , , , a + b, int16.Add(a, b).
, , « , ». :
func foo() (int, int) {
sum, sumOfSquares := 0, 0
for _, v := range values {
sum += v
sumOfSquares += v * v
}
return sum, sumOfSquares
}
func GCD(a, b int) int {
for b != 0 {
a, b = b, a % b
}
return a
}
func GCD(a, b int) int {
if b == 0 {
return a
}
return GCD(b, a % b)
}
(foo), , . ? , , , .
,
B .
sum = sum + v.x
sum = sum + v.y
sum = sum + v.z
sum = sum + v.w
sum1 = v.x
sum2 := sum1 + v.y
sum3 := sum2 + v.z
sum4 := sum3 + v.w
, (
D) .
, 3 . — .
:
- A. for(i = 0; i < N; i++)
- B. for(i = 0; N > i; i++)
- D. for(i = 0; i <= N-1; i += 1)
- C. for(i = 0; N-1 >= i; i += 1)
, ? ,
. . — .
, - . — . .
— « » . «, ». , « i, N, , i ..».
— « » . , , « ».
. ,
APL idioms,
C++ idioms . , , ( , , ).
. , . — ( ), , .
«» «». , . , Model Controller , , .
: , . - , .
. , , , , — , «» .
, . . , :
[1,2,3].filter(v => v >= 2)
- , «2 3» «1»? «» «»? — , . , , ?
select,
discard keep.
- . ,
GetUser(string) , , . ,
CustomerID ( )
GetUser(CustomerID),
GetUserByName(string). .
— .
total1,
total2,
total3 — - . , ( ) .
sum,
sum_of_squares,
total_error — .
— . : « , , UI ». , . - - , , , , .
. . , «» . , , , - .
, :
for(var i = 0; i < 100; i++) {
var a = 4;
, . . ( ) . , , , — . , «» «» — .
— , . , , , . « , Y Z - », « , ...».
.
. ( ) , . -. , , , . - , — , «», «». — , 5 . , 10 ( !) . . — , .
. — .
— . («early return»):
public void SomeFunction(int age)
{
if (age >= 0) {
} else {
System.out.println(" ");
}
}
public void SomeFunction(int age)
{
if (age < 0){
System.out.println(" ");
return;
}
}
« -» , , . , «else» - «else» , -, « -», - , , «else» , . .
. . . -, .
« ». , — ? , . «» «». , , , . , — , , ( ) — . , « », - , «» Singleton . , ?
. — , . , — . . — , - . , , .
. :
void MinorFunction1( void ) {
}
void MinorFunction2( void ) {
}
void MinorFunction3( void ) {
}
void MajorFunction( void ) {
MinorFunction1();
MinorFunction2();
MinorFunction3();
}
void MajorFunction( void ) {
MinorFunction1();
MinorFunction2();
MinorFunction3();
}
void MinorFunction1( void ) {
}
void MinorFunction2( void ) {
}
void MinorFunction3( void ) {
}
void MajorFunction( void ) {
{
}
{
}
{
}
}
, . , . ( ) — .
— , , , , — .
, , , , , , , .. , — . , .