balu: (Default)
от. Михайло ([personal profile] balu) wrote2025-04-01 09:44 am

Олди тут?

Наткнувся ось на, якщо це правда, код перво-С, що написаний покійним вже Денісом Рітчі. І на що я там звернув увагу, так це на старий стиль визначення функцій, наприклад:

init(s, t) char s[]; { /*Some code here*/ }

і він мені видався більш вдалим за пізніший стиль:

int void init(char s[], int t){/*Some code here*/}

У старого стиля є два великих плюси:

  1. він займе менше місця для імен параметрів. Особливо коли читаєш clearAndLongParameterNames.
  2. все-таки ми орієнтуємось спочатку на імені, яке має відображати суть, а тип є технічною деталлю. І ідея розділення імені і типу мені сподобалася

У зв'язку з цим виникає питання до тих, хто стикався з цим: чому старий стиль відійшов? Бо поки я бачу, тільки те, щоб дізнатися тип параметра, потрібно перемістити погляд нижче, що може ускладнити швидке розуміння сигнатури функції.

Натомість у старому стилі був акцент на семантиці: спочатку видно імена параметрів, які повинні передавати суть того, що передається у функцію. Це дозволяє швидше зрозуміти призначення кожного аргументу, не відволікаючись на деталі типу.

А ще це зменшення візуального шуму: при наявності багатьох параметрів, вказівників або параметрів зі складними типами, оголошення типів в окремому блоці може візуально відокремити семантичну інформацію (імена) від технічної (типи), що потенційно полегшує сприйняття.


Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting