Здравствуйте, Khimik, Вы писали: K>Я никогда не работал на работодателя, и у меня в ходе написания моей программы сформировался собственный стиль кода. Вот два фрагмента Delphi-кода моей программы:
почему вы думаете что это ваш собственный стиль? так пишут все школьники после первого года обучения паскалю
Здравствуйте, vsb, Вы писали:
vsb>Такой стиль вряд ли где-то используется в "групповом" программировании.
vsb>Раньше был принят стандарт в ширину 80 символов практически во всех языках.
Я и сейчас стараюсь так писать. Иногда бывает удобно распечатать код и помедитировать над распечаткой, а больше 80(+-) на A4 не влазит.
Вызов функции с кучей параметров, например, удобно оформить с переносом каждого параметра на отдельную строку — и читать удобнее, и если что-то поменяется, diff покажет, какой параметр изменен. Ну и тп.
vsb>Поэтому все профессиональные разработчики сейчас пишут примерно одинаково, в том числе и чтобы понимать друг друга. Необычные стили вроде приведённого могут встречаться либо у одиночек, либо в каких-то очень изолированных непрофессиональных коллективах.
насколько я профессиональный разработчик, и в командах мало работал, но все равно у меня читабельность кода — один из важных критериев.
K>А если код нужен только одному человеку (шароварщику)?
Второй пункт все равно в силе. Только в качестве другого разработчика вы. Что на самом деле еще хуже, поскольку мучиться и страдать будете вы.
Здравствуйте, BrainSlug, Вы писали:
BS>Стало любопытно. А у вас монитор сколько дюймов? Поясню, — на мой монитор (телевизор точнее ) в 35'' не помещается этот код.
Что завидно, да? А у ТС такой монитор, похоже, был изначально
Здравствуйте, BrainSlug, Вы писали:
BS>Стало любопытно. А у вас монитор сколько дюймов? Поясню, — на мой монитор (телевизор точнее ) в 35'' не помещается этот код.
Глянул тут твою первую правку, ты там вспоминал про игру на gamedev'е, похожую по стилю кода — это же ЩИ!!!Симулятор жестокости
Такие вещи не забываются, имхо
Макароны, спакетти-код — эти термины уже отживают свое. ЩИ!!!-код — за этим названием будещее
M>Глянул тут твою первую правку, ты там вспоминал про игру на gamedev'е, похожую по стилю кода — это же ЩИ!!!Симулятор жестокости M>Такие вещи не забываются, имхо
да это оно щи-код (потом появится щи++)
Здравствуйте, jhfrek, Вы писали:
S>>Ну или нет объектов вообще. Так тоже делают.
J>кто-то еще пишет в процедурном стиле? Вроде уже даже в школах процедурным языкам не учат
Я пишу, особенно если задача меньше 10 тыс строк.
Когда меня в школе учили, объектных языков особо не было, а с тех пор, надо признаться, я не слишком заморачивался прогрессивными молодежными течениями.
Здравствуйте, Sharowarsheg, Вы писали:
J>>кто-то еще пишет в процедурном стиле? Вроде уже даже в школах процедурным языкам не учат S>Я пишу, особенно если задача меньше 10 тыс строк.
фортран или чистый С?
S>Когда меня в школе учили, объектных языков особо не было, а с тех пор, надо признаться, я не слишком заморачивался прогрессивными молодежными течениями.
тогда лучше и не заморачиватся, потому что переход от процедур к объектам по принципу "лишь бы было" действительно превращается в мегакласс TUtils с кучей методов Я такое видел, нафиг-нафиг.
Здравствуйте, Vaako, Вы писали:
V>Поверь, через пару лет ты не захочешь лезть разбираться где ошибка в коде
Он-то, конечно, не захочет, дак кто ж его спрашивать-то будет? Скажут — вот здесь бага, лог пришлют — и все. И будет копаться. В конторах такое копание обычно сопровождается восклицаниями типа "какой осел это писал".
Здравствуйте, Marty, Вы писали:
M>... ЩИ!!!Симулятор жестокости
M>Макароны, спакетти-код — эти термины уже отживают свое. ЩИ!!!-код — за этим названием будещее
Н-да. Я такого кода не видел даже у математиков и астрономов, писавших на Фортране-4. А они с целью экономии машинного времени практически все в главной программе держали. CALL в их программах встречалось нечасто.
Здравствуйте, elmal, Вы писали:
E>Здесь конечно сложно что то усовершенствовать, но я попробую. Советую имена переменных называть из смеси катайских, финских, иврита слов.
Достаточно на Runglish написать, эффект будет — никто за пределами России не поймет, а в пределах — все поймут, но такое скажут...
P>Н-да. Я такого кода не видел даже у математиков и астрономов, писавших на Фортране-4. А они с целью экономии машинного времени практически все в главной программе держали. CALL в их программах встречалось нечасто.
Автор этого кода, как он пояснял в форуме, выложил древний код, причём, когда он это писал, он программировать не умел совсем, а взял какую-то демку и стал её улучшать и развивать, делая всё по аналогии с кодом, который былв демке.
J>>>когда напишите проект из хотя бы тысячи строк такого кода, вернитесь к нему через пару-тройку лет и попробуйте изменить и потом отладить. S>>Нафига? Пишите сразу хорошо.
J>человек написал сюда пост в защиту своего стиля, он не будет хорошо писать пока не прочувствует что писать плохо — это плохо
У меня есть (шапочный) знакомый, который в подобном стиле пишет на Эрланге. Аргументы: «У меня художественное образование, стиль кода не имеют право обсуждать люди, не имеющие художественного образования».
Здравствуйте, Sinix, Вы писали:
S>2. После того, как выяснится, что код решает не ту проблему и не так, код правится без обращения к автору кода любым из разработчиков в команде. Даже если он видит этот код в первый раз.
с этого места поподробнее пжлста. как программер не знающий предметной области этого кода что-то будет править?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
S>>2. После того, как выяснится, что код решает не ту проблему и не так, код правится без обращения к автору кода любым из разработчиков в команде. Даже если он видит этот код в первый раз. V>с этого места поподробнее пжлста. как программер не знающий предметной области этого кода что-то будет править?
Кэп 1: в примере топикстартера знание предметной области никак не поможет
Кэп 2: эта проблема решается не кодом, а наличием ТЗ, соглашениями по стилю кода, историей в таск-трекере, правильным разделением задач в команде и ещё тонной других способов.
Здравствуйте, Sinix, Вы писали:
S>Кэп 2: эта проблема решается не кодом, а наличием ТЗ, соглашениями по стилю кода, историей в таск-трекере, правильным разделением задач в команде и ещё тонной других способов.
и каким же образом тз, знание стиля и истории трекера поможет знать предметную область? я что-то пропустил в этой жизни?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
S>>Кэп 2: эта проблема решается не кодом, а наличием ТЗ, соглашениями по стилю кода, историей в таск-трекере, правильным разделением задач в команде и ещё тонной других способов. V>и каким же образом тз, знание стиля и истории трекера поможет знать предметную область? я что-то пропустил в этой жизни?
Это вопрос чтоб докопаться или серьёзно? Вопрос странный какой-то. Такое впечатление, что ты увидел у меня в посте какой-то тайный смысл, который я не закладывал, и с ним споришь
Если код читаем и снабжён комментами/тестами, то проблема, которую должен решать код, восстанавливается и без автора.
Ссылка на ТЗ/лог таск-трекера позволяет уточнить детали (в том числе "предметную область кода") + найти человека, который поможет разобраться с непонятными моментами.
Ну и здравый смысл подсказывает, что внутри команды разработчики как минимум в курсе проблем, которые решают соседи.