كل ما هو مكتوب أدناه ، لا يدعي مطلقًا أنه الحقيقة المطلقة ، ولكنه لا يزال يمثل بعض النماذج التي تساعدني شخصيًا في إيجاد طرق لكتابة كود أفضل قليلاً.. — . , . , , , , — . « » — , ? ? , ? . . — , .
, . , .
. , 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 ) {
{
}
{
}
{
}
}
, . , . ( ) — .
— , , , , — .
, , , , , , , .. , — . , .