Стиль программирования


18 0

После статьи про нестандартное использование Delphi я наткнулся на блогеров, которые не поленились попинать в мою сторону. Да и в комменты пару раз писали. Смысл наезда прост – это плохой стиль. Интересно, а что они хотели увидеть в статье с таким названием? Это не стандартное использование компонентов, а значит, будет описано не стандартное программирование, которое нельзя применять каждый день. Это очень плохой стиль программирования, но иногда он необходим. Иногда это приносит реальную пользу.

Например, один блоггер написал: «Я понимаю, что иногда это будет полезно, но такие случаи очень-очень редки. А новички, прочтя подобную статью, будут именно так и поступать». Человек понимает и соглашается, что такие случае есть, и иногда необходимо пользоваться плохими приемами. А то, что новички могут использовать мои методы не там, не говорит о том, что нам теперь, нельзя вообще писать об этом? Я описываю нестандартные методы, но не призываю их лепить везде подряд, а только в случаях крайней необходимости, которые существуют.

Где вообще эта грань – необходимости? Даже человек с опытом не всегда может определить ее и она определяется только методом опыта и ошибок. Пусть новички учатся, и они имеют право знать о различных методах и даже не стандартных. Или программисты с опытом считают себя выше? Кстати, человек, написавший вышесказанные строки вполне адекватный и умный (если судить по записям на блоге), но как же не пнуть в мою сторону :)? Ну ладно в мою сторону любят пинать выпендрежники, но тут вполне умный парень.

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

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


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

CLS

21 Сентября 2008

Михаил, всегда хотел спросить, почему в дельфийских исходниках вы часто(по крайней мере в книгах) используете для отступа 1 пробел, а не стандартные 2, как дядя Борман?
Это экономия бумажных страниц или ваш стиль?


Михаил Фленов

21 Сентября 2008

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

Да, сейчас мониторы поболее и кода помещается больше, но привычка ставить один пробел у меня еще со времен мониторов 640х480.


Ovedrive

21 Сентября 2008

Это дело каждого. Кто как привык. Прочитав вашу книгу "Delphi в шутку и всерьез" я выработал свой метод оформления кода. + Пары Алгоритмизации и программирования со своей Венгерской нотацией =).
Вместо пробела жму на таб. Вроде как нагляднее получается. Ведь роль играет не только пробелы, но длинна имен объектов, переменных, свойст, методов и тд.


Sdk

21 Сентября 2008

Михаил, CydSoftwareLabs это лаборатория софта? Это просто название ваших программ или у вас действительно  там задействовано много людей, занимающихся разработкой софта?


Михаил Фленов

21 Сентября 2008

Я все делаю один и Labs - это всего лишь слово.


Михаил Фленов

21 Сентября 2008

Прочитав вашу книгу "Delphi в шутку и всерьез" я выработал свой метод


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


Arch

21 Сентября 2008

Я все делаю один и Labs - это всего лишь слово.

Ы. Я себя тоже обзываю Arch's Studio, хотя работаю один...


KIRILL

21 Сентября 2008

Один мой знакомый вообще блоки кода в шахматном порядке располагает


Михаил Фленов

23 Сентября 2008

Рад, что прочел мой пост


Я просто увидел, что удивительно много народу забежало на мой сайт с вашего, поэтому решил посмотреть почему и конечно же прочитал.

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

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


aktuba

23 Сентября 2008

Рад, что прочел мой пост.
Но, согласись, давай такие знания, как в посте про изменение стандартных компонентов, надо давать четко понять, что это очень плохо.

Да, бывают моменты, когда это необходимо. У меня таких моментов было 2:

1. Правка Indy, т.к. там есть баг при работе с куками.
2. Правка TMS THTMLabel - не было возможности выравнивания по ширине (justify).

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

На мой взгляд - это был очень плохой пост. Вместо этого лучше давать новичкам правильное понимание ООП, работу с виндой (например, потоки, процессы), новые возможности Delphi. Вот например, хелперы - очень полезная новинка. Вы же даете новичкам знания, применяя которые, без правильного понимания и соответствующего опыта, только вредно.

Надеюсь, я не зря распинался и это повлияет на ваше мнение как в отношении постов, так и в отношении книг.


Михаил Фленов

23 Сентября 2008

Рад, что прочел мой пост



Я просто увидел, что удивительно много народу забежало на мой сайт с вашего, поэтому решил посмотреть почему и конечно же прочитал.

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

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


Sdk

24 Сентября 2008

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


AnTe

20 Февраля 2009

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

Вы ведь не будете пятилетнего ребёнка обучать, как производить удары ножом? Несмотря на то, что теоретически существуют ситуации, когда это ему понадобится. Вряд ли. Здравый смысл подсказывает, что этому следует обучать взрослого человека, и то - далеко не всегда.

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


Михаил Фленов

20 Февраля 2009

1. На счет аудитории книг ты ошибается. она очень разная Да. в основном это не профи, потому что профи книг не читают :)

2. Причем тут книги я не понял, потому что осуждается статья на сайте. Или это на столько опасная тема, что о ней должны знать только избранные и нельзя нигде об этом писать? а может нужно избранном давать доступ?

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

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


Notez

21 Февраля 2009

ни ты AnTe, ни какой-то там aktuba не имеют права решать что нужно рассказывать, а что не нужно. aktuba  сам пишет:

Да, бывают моменты, когда это необходимо. У меня таких моментов было 2:

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


AnTe

21 Февраля 2009

to Notez:
1. право решать, что писать в своих книгах, а что нет, имеет только их автор, - Михаил.

2. Блог нужен для того, чтобы писать свои замечания и предложения, а не для того, чтобы "зарабатывать авторитет".

3. Для того, чтобы, научившись пользоваться опасным способом, по ошибке применить его в "не крайнем случае", тупым быть не обязательно.

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

Ещё раз повторю, что, создав блог, Михаил лишь подчеркнул, что он - не молчаливый автор "абы что написать", и его интересует мнение читателей. Вот я и написал это своё мнение, не более того.


Михаил Фленов

21 Февраля 2009

AnTe

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

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


Step99

04 Марта 2011

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


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

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

Пишите мне