170 похожих чатов

Для читаемости кода есть какая-либо договорённость о последовательности объявлений функций?

Ну типа как в C, сначала объявить, потом вызывать?

func a() {}

func b() {
a()
}

Или наоборот? Читающему как легче воспринимать? Или всё равно, и это вкусовщина?

17 ответов

22 просмотра

Ну методы обычно желательно писать сначала экспортируемые. А экспортируемые вызывают неэкспортируемые, поэтому по логике объявление a должно быть ниже объявления b :) По мне так читаемость лучше

Вкусовщина. Зависит откуда человек пришёл. Я тоже обычно сначала пишу a до b, но это просто привычка сформировалась ещё в Pascal’е

Геннадий-Ковалёв Автор вопроса
wm0
Ну методы обычно желательно писать сначала экспорт...

Ну типа интересует что делает чужая либа, открываешь исходник, и экспортируемая функция сразу, а что он там во внутренних наворотил - дело десятое. Ок, понял.

Геннадий Ковалёв
Ну типа интересует что делает чужая либа, открывае...

Да, в питоне я начал аналогично делать, ориентироваться удобнее стало

Alexey Palazhchenko
В разных файлах 😄

А мне кажется писать лишь удобнее в разных файлах. А читать всегда сверху вниз без перепрыгивания по файлам в поисках функции. Идеально, если блок кода и коммент к блоку.

wm0
А мне кажется писать лишь удобнее в разных файлах....

Ну читать с навигацией по коду всё же удобнее. Но я с этого начал – вкусовщина

Геннадий-Ковалёв Автор вопроса
wm0
А мне кажется писать лишь удобнее в разных файлах....

Блок кода - это // Now block starts.... { // our awesome code... // ... } Такое?

Геннадий Ковалёв
Блок кода - это // Now block starts.... { // ...

Так в Go почти не делают. Обычно стараются выносить функции, если есть такая проблема со скопом

Геннадий-Ковалёв Автор вопроса
Alexey Palazhchenko
Так в Go почти не делают. Обычно стараются выносит...

Я где-то такое просто увидел и удивился, типа нафига.

Геннадий Ковалёв
Я где-то такое просто увидел и удивился, типа нафи...

Ну, именно для создания нового scope: и для области видимости, и для работы с памятью

макконел советует сперва б, потом а. Ну это если си в крови не застыл, то это объективно удобнее: сперва кто-то вызывает б, ты читаешь функцию б, видишь в ней вызов а, спускаешься глазами чуть ниже и видишь определение а.

Геннадий-Ковалёв Автор вопроса
Rostislav Teryaev
макконел советует сперва б, потом а. Ну это если с...

Я понял. Короче a() -> b() для машины, а b() -> a() для человека 😂

Alexey Palazhchenko
Вкусовщина. Зависит откуда человек пришёл. Я тоже ...

кмк сейчас вообще не важно. давно уже все перемещаются через хоткеи по коду, а не мышкой. мышка чисто для наведения и далее cmd + B или option + cmd + B или option + F7

Artur Karapetov
кмк сейчас вообще не важно. давно уже все перемеща...

Во-первых, не все. Во-вторых, при чём тут мышка?

Alexey Palazhchenko
Во-первых, не все. Во-вторых, при чём тут мышка?

“все”, я имел ввиду кому перфоманс важен. ну мышкой елозить, читать методы

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта