LINUX.ORG.RU
ФорумTalks

Правила хорошего тона в разработке

 , ,


1

3

По мотивам.

TL;DR Какие своды правил хорошего тона / хороших практик вы знаете и считаете ценными, что советовать новичку? И главное, как добиться понимания этих правил?

Начну с того, что как, наверняка, и многим здесь, мне не раз приходилось отвечать на вопрос «как стать программистом, с чего начать?», как IRL, так и онлайн (высказывался и на лоре), а иногда и непосредственно наставлять новичков и шефствовать над младшими разработчиками. Но тред немного не о том. Главный мой совет — начать с изучения хороших практик.

Само собой разумеется, обычно я ссылаюсь на источники этих самых хороших практик. Философию Unix, 17 правил Реймонда, различные гайды по стилю в целевых языках, если человек достаточно въедливый, могу сослаться на каноническую литературу для конкретного языка типа K&R, особо увлечённых могу даже отправить читать Макконелла, хотя сам подобную воду и не люблю.

Всё без толку, читают, ничего не понимают, говнокодят (в широком смысле).

Но черт с ними с новичками. Когда тыкаешь даже уже опытного разраба носом в Unix way, он, зачастую, говорит, что ННП. Либо он как-будто бы всё осознал и уже во всю следует канонам, но на деле продолжает говнокодить.

Как же мне до них достучаться?

А зачем достукиваться? Вы молодец, посоветовали. Тот, кому это важно - внял. Не внял и снять не собирается? - в отсеве в осадок выпадет

KrasnoGlazik
()

«как стать программистом, с чего начать?»

С прочтения https://ebanoe.it

Когда тыкаешь даже уже опытного разраба носом в Unix way, он, зачастую, говорит, что ННП

Unix-way не является единственно верной концепцией.

продолжает говнокодить

Хорошего кода не существует. Это миф.

Deleted
()

Пусть ставят себе статические анализаторы кода, типа SonarQube. Это исправит им большую часть лажи в коде. Архитектурную лажу так, конечно, не исправишь, но новичков к архитектуре и вообще лучше не подпускать. Когда они доростут до архитектуры у них уже и опыт будет и общее представление о том как лучше не делать.

morse ★★★★★
()
Ответ на: комментарий от KrasnoGlazik

А зачем достукиваться?

В тех случаях, когда эти новички со мной работают, я являюсь непосредственным выгодоприобретателем.

WitcherGeralt ★★
() автор топика
Ответ на: комментарий от morse

Пусть ставят себе статические анализаторы кода

Подхожу как-то к старшему коллеге, смотрю в редактор, там половина кода подчёркнуто волнистыми линиями. Спрашиваю втф, почему не правит. Сказал, что его это как-то не трогает, думал выключить, но уже привык игнорировать.

WitcherGeralt ★★
() автор топика
Ответ на: комментарий от WitcherGeralt

С такими старшими коллегами тебе только новичков учить, да.

Потому что самих вас к клавиатурам видимо лучше не подпускать.

morse ★★★★★
()
Ответ на: комментарий от morse

Справедливости ради, то было давно и про code style, не более того.

WitcherGeralt ★★
() автор топика
Ответ на: комментарий от WitcherGeralt

Тут вариант только один. Пишешь каркас системы сам. А лучше и бекенд тоже сам. Остальной контент даешь наполнять макакам. Со временем колясь и плача они поймут, что архитектура таки удачная. Ну или уволятся, если говно.

У меня, кстати, был как раз такой случай. Я написал каркас, один человек все понял и влился, а другой (это дэвушка была) ниасилил и слился :)

Deleted
()
Последнее исправление: rj45 (всего исправлений: 1)

не накручивать паттерны ради паттернов и архитектуру ради архитектуры. а то был у нас один, аналог хибернейта сделал. очкастый ещё

TooPar
()

А я посоветую как не надо делать.
Не надо ходить на курсы по программированию. ))))

Int0l ★★
()
Ответ на: комментарий от Deleted

Это вообще не вопрос архитектуры. Ясен пень, никто нуба к ней не подпустит. Проблема в том, что понимание, что такое говнокод (в широком смысле), а что нет, случается либо не скоро, либо никогда.

WitcherGeralt ★★
() автор топика

Когда тыкаешь даже уже опытного разраба носом в Unix way, он, зачастую, говорит, что ННП. Либо он как-будто бы всё осознал и уже во всю следует канонам, но на деле продолжает говнокодить.

Что толку дрочить на UNIX-Way, если по его постулатам проехались все, кому не лень? Начиная с таких монолитов, как X.Org и заканчивая любыми графическими тулкитами и DE.

Подхожу как-то к старшему коллеге, смотрю в редактор, там половина кода подчёркнуто волнистыми линиями. Спрашиваю втф, почему не правит.

Так может там анализатор на полную выкручен и ловит якобы typos, которых и в помине нет.

EXL ★★★★★
()
Ответ на: комментарий от hateyoufeel

Туда разве кто-то адекватный пишет?

Последнее время очень редко.

Мне почему-то показалось, что там в основном нытьё рабов аутсорса из нiзалежной.

Так и есть. Но если человек спрашивает «Как стать программистом?», и ему не 12 лет, то вероятнее всего он в подобных местах и окажется.

Не все понимают, что «хлебает смузи за 300кк в секунду» очень маленькая прослойка программистов, а в основном это обычный пролетарский труд.

Deleted
()
Ответ на: комментарий от Deleted

Не знаю как у тебя, а на моей практике, если в вуз не зашла какая-то ИТ-конторка, которая сама себе кадры готовит, то оттуда вылупляется только то, что в античной Спарте со скалы скидывали.

WitcherGeralt ★★
() автор топика
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от theNamelessOne

пффф. фабрика в кубе от джуна-за-еду не защитит. вот алгоритмы и матан приправленные микросервисами - это гарантированный разрыв

TooPar
()
Ответ на: комментарий от WitcherGeralt

Не знаю как у тебя

Я людей без профильного высшего за людей-то не считаю. Сразу видно таких, когда дело доходит до чего-то, что не проходят на 3х месячных курсах.

Есть полно «инженеров» за кассами различных макдаков, там тем кого ты видел и место, но они и сами редко идут в НИИ, если 5 лет бухали и трахались.

Deleted
()

Когда тыкаешь даже уже опытного разраба носом в Unix way, он, зачастую, говорит, что ННП

Я давно заметил, что знакомство с юниксами и квалификация разработчика очень сильно коррелируют.

urxvt ★★★★★
()
Ответ на: комментарий от Deleted

С прочтения

Этот сайт сначала забирает время, а потом — настроение. Не надо его читать, если планируешь в этот день ещё работать.

i-rinat ★★★★★
()
Ответ на: комментарий от Deleted

Высокомерненько. Вот только топовые IT-корпорации обычно считают иначе, и строка от образовании в объявлениях выглядит примерно так: «degree in Computer Science or equivalent practical experience».

не проходят на 3х месячных курсах

Если ты думал, что я этих с вузовскими сравниваю, то нет, эти вообще биомусор.

WitcherGeralt ★★
() автор топика
Ответ на: комментарий от theNamelessOne

Я заглядывал. Там ещё больше нытья и сплошной анал карнавал. Честно говоря, мне даже стыдно стало за то, что такую хрень читаю.

hateyoufeel ★★★★★
()

В какой-то книжке, наверное по каким-то паттернам, был интересный посыл. Остальная книжка (а может и онлайн курс х3), видимо была не оч, т.к. название в душу не запало.

Инкапсулируй меняющуюся сущность, всегда и только её. Говорили они. И по факту, сия простая хрень покрывает огромное множество всяких навороченных идиом и прочего шлака.

Отправлять читать талмуды - легко (иди таненбаумов и кнута почитай, потом шлифани кормэном, через пару лет увидимся). А вот показать как из уродского навороченного многословного комбайна сделать изящное решение задачи, первый раз можно только на личном примере, желательно проговаривая в слух вещи «А вот эта же хрень тут нахрен не нужна, требований нет, выглядит как гуано, выкидываем...».

onhydro
()

как стать программистом, с чего начать?

Работать. Работать. И ещё раз работать.

начать с изучения хороших практик

Новичок тупо не поймёт почему они хорошие. Нужен опыт. Зазубривание бесполезно.

Всё без толку, читают, ничего не понимают, говнокодят

Если дедлайн вчера - не до качества.

/мимокрокодил

RazrFalcon ★★★★★
()
Ответ на: комментарий от Harald

Ага. Думал поотрабатывать номер, когда уже некоторое время занимался разработкой, даже поступил, но в итоге решил не страдать хернёй и забрал документы. Хотел бы поучиться в MIT или Беркли, а местные вузы как-то не вдохновляют.

WitcherGeralt ★★
() автор топика

Когда тыкаешь даже уже опытного разраба носом в Unix way

Ты не имеешь морального права этого делать, потому что сам пишешь код как мудак. Какой юникс вей ты можешь посоветовать человеку который пишет аналог Вижуал студии? Или ИИ на прологе каком-нибудь.

То же мне гуру от программирования выискался.

Bobby_
()
Ответ на: комментарий от RazrFalcon

Новичок тупо не поймёт почему они хорошие

Это я давно понял, а как искуственно привить хотя бы минимальный вкус нет.

WitcherGeralt ★★
() автор топика
Ответ на: комментарий от WitcherGeralt

Ты их наверное со штангой приседать заставляешь.

imul ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Да по твоему напышенному тону. Меня часто спрашиваю .., наставник молодежи.

Ты сначала выучи что такое моноидальные категории эндофункторов. А потом будешь кукарекать тут про бест практикс.

Bobby_
()
Ответ на: комментарий от WitcherGeralt

100500

сам пишешь код как мудак

Почему ты так решил?

Deleted
()
Ответ на: комментарий от KrasnoGlazik

По минимальному порогу первого и однозначному наличию второго.

Мы с коллегами составили такое тестовое задание, качественное выполнение минимальной части которого, не оставляло бы сомнения в уровне кандидата, чтобы не мучить его дурными вопросами на собеседовании. Никто к успеху не пришел. При том, что в нём были все хинты для его качественного выполнения. Трудолюбия, решив выполнить свыше самого минимма, никто тоже не проявил, хотя задания были вполне интересными.

На собеседовании спрашивали интересы, кто какими дистрами пользовался, какие учебные ресурсы используют и тому подобное. Линуксоидов не попадалось.

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

WitcherGeralt ★★
() автор топика
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Ответ на: комментарий от Harald

Действительно, а почему?

Ну мб потому что в первом случае они сами спрашивают? А во втором младшему полагается прислушиваться к ведущему?

WitcherGeralt ★★
() автор топика

Какие своды правил хорошего тона / хороших практик вы знаете и считаете ценными, что советовать новичку?

1. Всегда следовать code style языка разработки.
2. Всегда комментировать любой нетривиальный кусок кода. Причём, комментировать не «здесь A хитровывернуто присваивается B», а записывать в чём суть идеи.
3. Не разводить копипасту.
4. В любой непонятной ситуации при отладке не лениться, а залазить в исходники RTL и смотреть как оно работает. Заодно смотреть как написано.
5. В свободное время читать какие-нибудь «лучшие практики» по используемому языку и мотать на ус.

atrus ★★★★★
()
Последнее исправление: atrus (всего исправлений: 1)
Ответ на: комментарий от Bobby_

Душечка, напишешь мне тут сервис один по тз? Докажи что не верблюд.

Что ты о себе возомнил-то, чтобы я перед тобой распинался?

ЧСХ, в напыщенности обвиняешь меня.

Да по твоему напышенному тону. Меня часто спрашиваю .., наставник молодежи.

как, наверняка, и многим здесь, мне не раз приходилось отвечать на вопрос
а иногда и непосредственно наставлять новичков

Проблема не в том, что это я напыщенный. Очень похоже, дело в том, что просто ты жизнью обиженный.

WitcherGeralt ★★
() автор топика
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.