LINUX.ORG.RU
ФорумTalks

Вопрос к не-энтерпрайзным разрабам

 ,


0

6

сразу оговорюсь: почему в такой формулировке: во-первых, потому что обычно либо я встречался с водкой, либо я встречался с лором, уж не знаю, встречался ли лор с водкой без меня, а тут вдруг, собрались мы все втроем:)

Это типа шутка была:) дубль два. почему в такой формулировке? Потому что перед разрабом, работающем на контору обычно стоит конкретная задача, он отстрелялся и ушел. тут есть разница.

Я знаю за собой проблему, которую кратко можно охарактеризовать как разновидность перфекционизма. Недавно я написал редактор для одного своего проекта, он был готов на 99%, но мне он чуть не нравился. Чуть-где то съезжало форматирование, чуть он меня не устраивала расширяемость, я много размышлял о глобальных последствиях, о совершенстве его юзабилити, и тп. В итоге, когда встал вопрос, запускать ли его в этом виде или нет, я решил отложить. В итоге, чуть недоделанный, пчти готовый редактор валяется пару месяцев, а теперь я забыл весь код, и все идеи, и сейчас уже не уверен, что когда-нибудь допишу его, дел по горло, некогда, и вполне возможно, что проще будет написать с нуля. Но в момент, когда я его писал, мне казалось, что код экстремально прозрачный понятный и простой — в этом, по сути, и была основная цель. Может быть, так оно и есть, и надо сделать лишь усилие, но я боюсь что облажаюсь:), боюсь что быстро не смогу разобраться в коде который там наворотил.

Возникают ли у вас такие проблемы? Если да, что вы с этим делаете?

Перемещено tailgunner из development

и вполне возможно, что проще будет написать с нуля

Это ошибка. Приятнее будет начать переписывать с нуля - это да. Но не проще в итоге.

Может быть, так оно и есть, и надо сделать лишь усилие

Да, делай усилие, воскршай старый код. Заодно поймёшь, что тебе надо будет делать, чтобы это не повторилось. Пиши ещё более понятный код, документируй, оставляй комментарии, TODO...

Потому что перед разрабом, работающем на контору обычно стоит конкретная задача, он отстрелялся и ушел.

Вот не обобщай. Есть разные разрабы и разные конторы. Для меня, например, задел прошлых работ очень важен, и я его постоянно наращиваю. Продукция развивается, перевыпускается, делаются аналогичные проекты...

Я, правда, больше выступаю в роли ведущего программиста, и для меня сопровождение кода как минимум не менее важно, чем его начальное написание. Возможно, поэтому у меня идеи «а давайте всё это выкинем и перепишем с нуля» всё чаще вызывают изжогу. Хотя как человек, пишущий код много лет, я прекрасно понимаю, откуда они берутся и чем мотивируются.

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

Я вот не верю в эту историю. По-моему твоего опыта хватит только на хеллоу-ворд, но никак не на редактор

anonymous
()

А так я пишу сразу, не понимая чего я хочу до конца, потом переписываю много раз. Но не с нуля, конечно.

anonymous
()

Если да, что вы с этим делаете?

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

Ну есть ещё вероятность, что ты невротик.

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

я тоже так. Но часто так бывает, что и финал не определен. А потом, по прошествии времени, смотришь на свой код как баран на новые ворота. Это еше усугубляется такой вещью. Иногда получается что-то гениально простое. То есть, ты написал код, а потом этот принцип используешь везде. И думаешь, какой же я гений, а все сосут. И потом начинаешь пытаься писать так же — не получается:(, а потом начинаешь рассуждать, а почему тогда у тебя это получилось, а теперь нет? И впадаешь в прострацию...

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

А у тебя насколько длинный код? У меня максимум 6k строк, и в них такого, что я забыл суть не случается

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

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

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

А вообще, у меня очень плохая память. Я помню не столько код, сколько концепцию, код как таковой я вообще никогда не помню:)

filequest
() автор топика

Если да, что вы с этим делаете?

Почему-то все программисты пытаются выпендриться: «смотри, как я могу». Код должен выполнять задачу, но быть при этом максимально простым. А не «простым».

i-rinat ★★★★★
()

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

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

это и есть собственно, основа искусства программирования. «должен быть» но никто так не может. Сложность двояка. Есть сложность реализации, а есть сложность интерфейса. Почти всегда надо жертвовать простотой реализации ради простоты интерфейса, потом это окупиться тем, что твой простой интерфейс станет основой другой реализации, тоесть, это слой.

filequest
() автор топика

для одного своего проекта

Нет у тебя никаких проектов.

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

Многие так могут, многие не могут. Если ты всё то время, что потратил на срачи на ЛОРе, писал код именно с целью решить задачу, а не выпендриться, тоже научился бы.

Ну зато ты научился красоваться. Тоже полезное умение. Теперь все кодо-срачи — твои.

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

например, судя по твоим комментам, лично ты так не можешь. Понимание промтоты — это искусство, доступное лишь избранным. Косвенно, можно судить о человеке, понимает ли он истиную простоту или нет, по тому, какие технологии он выбирает, и каких идей придерживается. Алан Кей понимает смысл простоты. Страуструп — нет. Простота — это основа красоты, сложность — причиа уродства. А твои лично комменты, не показывают мне, что ты иммешь хоть какое то понятие о простоте. Если простота для тебя — это написать код, не требующий умственных усилий, мне тебя жаль. Подлинная простота сложна, и далеко не каждому это дано. Это вообще общяя вещь, не только тут. Это касается всех и нженерных специальностей, и выходит далеко за эти рамки. Красота и простота ДВС лежит на поверхности, но почему до этого не додумались прачки?

filequest
() автор топика

он был готов на 99%
и вполне возможно, что проще будет написать с нуля

код — говно

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

Алан Кей понимает смысл простоты. Страуструп — нет

что они там понимают, гадать не буду — не телепат, но у обоих изобретённые ими языки далеки от простоты и изящества

простые и изящные языки — это форт, лисп, и, внезапно, ещё и ассемблер многих процессоров. говорю так, смотря скептически на все 3.

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

То что изобрел Алан Кей — это лисп с акцентом на fexpr's, и плюс к тому — one way notifications — объект не обязан отдавать ответ тому, кто отправляет сообщение. А если ты не считаешь, что изобретенное Кеем, по сути, самоочевидное, не является верхом красоты и изящества, то мне тебя жаль:(

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

Ты сейчас говоришь о «простоте», каком-то настолько возвышенном понятии, что и сам его толком не понимаешь. А я о приземлённой простоте.

Да, код не будет изящным. Но код — не картина, которую написал, повесил в рамке на стену, и больше никогда не трогаешь. Его нужно менять, дополнять, расширять. И, как ты сам написал, «простота» твоего кода это делать не позволяет. Если бы это был чужой код, ещё можно было бы сказать, что у тебя недостаточно умений. Но нет, ты всего лишь создал write-only код.

i-rinat ★★★★★
()

В итоге, чуть недоделанный, пчти готовый редактор валяется пару месяцев, а теперь я забыл весь код, и все идеи, и сейчас уже не уверен, что когда-нибудь допишу его

А были бы вы энтерпрайзным программистом - начали бы с разработки требований, юз-кейсов, тестов по ним и нихрена бы не сделали. Зато не пришлось бы теперь вспоминать свои идеи и код.

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

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

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

а в чем вообще смысл? Смысл, для мужика в том, чтобы победить. Или проиграть достойно, когда ты играешь против миллиона ничтожеств. Это философский вопрос:)

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

стоп. Я же не сказал, что она не работает:) Она работает гораздо лучше, чем, например, это говно, в котором я сейчас пишу:) Немного другой сабж. Как избавится от перфекционизма, и постичь дзен незавершенности:)

filequest
() автор топика

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

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

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

Как избавится от перфекционизма, и постичь дзен незавершенности:)

Ну, иди подними перфектную штангу весом в 1 тонну, а потом сравни свои ресурсы и прослезись.

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

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

Ну и пиши в ней, а не сюда. Все счастливы будут.

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

штанга вообще не является чем то достойным внимания, если речь не идет о соревнованиях в подъемах штанги.

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

Я, как и остальные, хочу взглянуть на код. А ты всеми путями от этого уходишь. Сам же сказал, что о пользователях думаешь. Вот мне и интересно стало, как к пользователям твой код попал, если ты его никому не показываешь.

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

штанга вообще не является чем то достойным внимания, если речь не идет о соревнованиях в подъемах штанги.

Если штанга не является, то твои проблемы чем её лучше? Ты или можешь поднять штангу, или не можешь.

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

понимаешь, если я опубликую код, кто то может его прочитать, понять, и использовать. Я в общем случае никогда не выкладываю код в паблик. Иногда я делаю исключения, когда речь идет о концептуальных вещах. Выкладывать готовый код == насртаь на себя и свои интересы. Иногда стоит выложить чтобы его протестили, но оно не стоит того:)

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

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

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

В смысле откуда? Пользователи готового продукта, я имею в виду. Откуда пользователи у утюга? Ты, по-ходу, в какой-то своей реальности живешь

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

слшуай, я не хочу об этом говорить. Есть он у меня, или нет, это мое дело. Твое право, пройти мимо, я не буду это обсуждать:)

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

Хей-хей, какой ты странный. Мы говорили о коде, но ты свернул на пользователей. Когда я спросил о существовании этих пользователей, ты замялся. На вопрос о том, где код, прикрылся фразой о проприетарном продукте. А на вопрос об этом продукте предлагаешь пройти мимо.

Зачем ты поворачиваешь дискуссию в неприятном тебе направлении? Почему ты из раза в раз выставляешь себя в плохом свете? Тебя что, anonimous покусал?

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

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 1)

Мне кажется, если ты не понимаешь свой код спустя время, то он нифига не простой. Либо вообще криво сделан в силу неопытности на тот момент. Раз там многое не устраивало, то лучше переделать. Но это я как не программист говорю, не знаю там всех тонкостей

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

зачем? я обозначил проблему в топике. первый же ответ был самым верным, я и сам знаю, что нет простых ответов на сложные воросы, просто я угомонил полкило водочки. А по твоим комментам я вижу, что ты пытаешь удачу там где ее быть не может, а именно — в деталях реализаци. то есть, ты думаешь, образно, что если ты поймешь, как на процессоре выполняется, скажем, fact(5), то ты сможешь понять суть программирования, а это не так:)

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

как на процессоре выполняется, скажем, fact(5)

Ну точно anonimous покусал. Прям вся его суть в одной фразе.

i-rinat ★★★★★
()

правильно: новые редакторы не нужны. есть Vim, а для любителей ощущений есть Emacs

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

а давай правда с тобой задвинем о дзене программирования, а? На полном серьезе. Я уважаю, допустим, твои знания. У тебя есть твой бог — современная архитектура. Тебе очко рвет в клочья, что кто-то может делать вещи вообще не глядя на нее, ибо современная, реальная архитектура — это веб, а там все по другому, правда? Ну расскажи о своем видении.

filequest
() автор топика

разновидность перфекционизма

Нет.

я написал редактор

Нет.

своего проекта

Нет.

готов на 99%

Нет.

Чуть
чуть
я много размышлял
чуть
пчти готовый

Ты нихрена не сделал. Ты накидал схематичную картинку на салфетке, которую никто никогда не видел и не увидит, и решил, что это 99%. Дьявол в мелочах, а судя по тому, на каком этапе ты забросил работу, эти мелочи оказались важнее всех твоих высокоуровневых концепций. Ты просто в очередной раз показал свою никчемность.

winlook38 ★★
()

ТС, надо просто взять и сделать, иначе не мужикразработчик.

peregrine ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.