|
|
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Alex_soldierЕще можно о красоте кода судить по его оптимальности. Общепризнанна зависимость красоты инженерного решения от его целесообразности. В ряде случаев целесообразность - синоним оптимальности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2007, 18:33 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Alex_soldierЕще можно о красоте кода судить по его оптимальности. Обычно, в зависимости от ситуации, оптимизируют по: - количеству операторов в программе - быстродействию алгоритма - объему потребляемой памяти - времени написания кода --- Идеи движут Мир! неа. лучше судить по точности выполнения поставленной задачи, не прогать лишнего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2007, 19:18 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
мод Самое общее соображение: текст программы должен максимально соответствовать исходной задаче. Т.е. в идеале по тексту программы без комментариев можно понять и саму задачу и способ ее решения. Пример: рекурсивный способ расчета факториала "красивее" итеративного. Добавлю. В природе, красота тесно взаимосвязана с целесообразностью. Например, дельфин имеет форму тела, приспособленную к гидродинамике среды. Гепард обладает худощавым телосложением и особой системой лёгких и сердца, которые расчитанны на кратковременные но мощные нагрузки. Программирование также должно быть естественно-красивым. Например классические императивные алгоритмы должны иметь императивные реализации. Функциональные - наоборот. Попытка "притянуть за уши" или "навязать" имплементацию чужеродной среды закончится неудачей. Ибо - некрасиво. Например: некрасиво работать с файлами произвольного доступа на языке функционального программирования или пытатся моделировать синтаксический транслятор на PL/SQL или писать игру реального времени в экспертной системе. В этом контексте "некрасивость" можно развернуть как ворох синонимов: негибко, неудобно, небыстро, ненадёжно, нечитабельно, несопроводжабельно и... наконец нерентабельно . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2007, 21:36 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
mayton мод Самое общее соображение: текст программы должен максимально соответствовать исходной задаче. Т.е. в идеале по тексту программы без комментариев можно понять и саму задачу и способ ее решения. Пример: рекурсивный способ расчета факториала "красивее" итеративного.не очень хороший пример с факториалом.. в особенности если учесть что его точный рассчет идёт только до 17, далее числа с мантиссой :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2007, 22:00 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
softwarerВ этом случае "текст программы, максимально соответствующий исходной задаче" будет ужасен во всех смыслах, а красивое решение заключается как раз-таки в переработке этого уродца в матрицу условий и результатов. Так эта матрица и будет наиболее адекватна исходной задаче (т.к. дакларация всегда адекватнее императива). Пример однако: Код: plaintext 1. 2. 3. зы Лучшая книга по этому поводу http://lib.ru/CTOTOR/DEJKSTRA/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 09:19 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Voyager-8не очень хороший пример с факториалом Рекурсивная программа совпадает с мат. определением - в этом суть. Т.е. в идеале записанная мат. постановка - это и и есть готовая программа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 09:27 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
softwarerПервую мысль уже озвучили: такое впечатление, что Вам платят построчно.Еще раз отмечу, что делаю это бесплатно. В идеале большую часть должна генерить IDE, но пока не судьба. softwarerТут не только оформление надо лечить.Тут вообще ничего трогать не надо - фрагмент был приведен в целях демонстрации оформления. softwarerОбщепризнанна зависимость красоты инженерного решения от его целесообразности. В ряде случаев целесообразность - синоним оптимальности.Говорим об одном и том же! Voyager-8неа. лучше судить по точности выполнения поставленной задачи, не прогать лишнегоНеточное выполнение поставленной задачи - не является решением по определению! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 10:08 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Привет, Alex_soldier! Ты пишешь: Alex_soldierAs> Еще раз отмечу, что делаю это бесплатно. As> В идеале большую часть должна генерить IDE, As> но пока не судьба.ОРЗРВВ -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 12:11 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Позволю себе кое с чем не согласиться (что такое "ОРЗРВВ", я, к сожалению, не знаю) Начну с того, что в примере Alex_soldier кое-что, действительно, нуждается в исправлении: авторmyStr := StringReplace(myStr, '.', ',', [rfReplaceAll]); // Меняем точки на запятые Зачем здесь нужен комментарий? Однако, в общем, я согласен с Alex_soldier и тоже "делаю это бесплатно". Почему? Потому что меня не учили работать грязно. Когда вы покупаете мебель для кухни, пытаетесь собрать и видите, что отверстия не того диаметра и не на тех местах - чем это отличается от грязно написанной программы? А красиво работать - это не за деньги, просто иначе нельзя. Извините, мод , но по-моему, вариант (3) является наихудшим. С Voyager-8 тоже не могу согласиться. Вы все, наверное, знаете, что программу, "точно соответствующую посталенной задаче", но не подлежащую ни модификации, ни чтению (такую одноразовую поделку) можно слепить за полчаса и даже после поллитра водки. Но это, извините, не программирование, это называется блатным термином "лепить горбатого". Да, всем доводилось по необходимости, но это, между нами, не показатель профессионализма и не достижение. Горбатый - он и есть горбатый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 21:22 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Alex88Начну с того, что в примере Alex_soldier кое-что, действительно, нуждается в исправлении: Я был бы согласен с Вашим замечанием, если бы не одно "но": здесь не нужен не только комментарий, а и строка, которую он комментирует. А среди нуждающегося в исправлении я бы назвал: 1. Неправильную работу подпрограммы при различных региональных настройках 2. Игнорирование делающей ту же работу стандартной функции 3. Совершенно ненужное исключение, затрудняющее работу в IDE (вынуждающее либо постоянно дергаться на эту проверку, либо игнорировать этот класс исключений) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 21:32 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
модТак эта матрица и будет наиболее адекватна исходной задаче Только при очень расширенном восприятии "адекватности" - слова, которым Вы ненавязчиво заменили ранее употребленное "соответствие". Такая матрица, безусловно, "более адекватна". Но мифический постановщик, ставивший задачу в указанном виде, при взгляде на эту матрицу задачу "не узнает". И программист, врубающийся с нуля в код, глядя на матрицу, "не опознает" текст ТЗ, который он читал. мод3: x=if(x=1,2,1) все-таки вар.3 лучше Я бы сказал, лучше Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 21:38 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
softwarer , да, неправильную работу при разных настройках я, признаюсь, не заметил. Однако исключение может быть вполне осмысленным, если используется где-то на внешних уровнях. Работа в IDE в большинстве случаев не является рабочим режимом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 21:46 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
klen_... старайся писать с мыслью, что твою прогу будут править (делать изменения, жизнь не стоит на месте) другие кодеры, программисты, как хочешь Нафик-нафик. Учти прежде всего, что свою прогу будешь править именно ты. klen_...мне приходилось делать изменения в программах, где было по сорок операторв go to в других прогах после оператора if, 500 или даже 1000 строк кода, затем else и так далее я не великий программист, поэтому достаточно долго в них ковырялся, а иногда просто заменял, отдельный пункт меню, своей процедурой короче пиши для других Вот именно: klen_-у наплевать на чужой код; ишь какой - сразу все под себя переделывать стал. Короче: пиши для себя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 21:49 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Alex88Однако исключение может быть вполне осмысленным, если используется где-то на внешних уровнях. Алекс, пожалуйста посмотрите еще раз на обсуждаемый код, потом на Ваш ответ, и ответьте еще раз, поудачнее. Alex88Работа в IDE в большинстве случаев не является рабочим режимом. Для кого? Программист значительную часть рабочего времени проводит в IDE. Поэтому код, осложняющий работу в IDE, является постоянно действующим штрафом к эффективности его труда - действующим каждый день все те годы, что используется эта функция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 21:53 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Да, softwarer , посмотрел код. Что-то я сегодня тупой Но по 2-му вопросу остаюсь при своем мнении: программе не место в IDE, она должна работать на свободе. Если же функция настолько ценна, что используется во всех грядущих разработках, можно не полениться и избавить ее от глупо возникающих исключений. А лишние дерганья как раз и будут стимулом для этого. Не пишите для Себя, NextMan , Вам же хуже будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 22:06 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Предлагаю занести это в какие-нибудь аналы =) Alex88 программе не место в IDE, она должна работать на свободе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 22:16 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
интересно, а есть где-нибуть в сети примеры красиво (ну или хотя-бы просто правильно) разработанных программ ? Причем не только сам код, но и какая-нибудь документация к нему ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2007, 13:01 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext чтобы писать красивый/хороший/читабельный/всеохватывающий код прочтите книгу Макконели "Совершенный код", заодно и познакомиться можно с разными признаками и свойствами строк кода(или типа того:)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2007, 14:29 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
softwarerНо мифический постановщик, ставивший задачу в указанном виде, при взгляде на эту матрицу задачу "не узнает". И программист, врубающийся с нуля в код, глядя на матрицу, "не опознает" текст ТЗ, который он читал. Есть содержательная постановка задачи (на пальцах), а есть формальная - математическая. Я ессно имел ввиду только ее. softwarer Я бы сказал, лучше Код: plaintext 1. 2. Тоже вариант, но две строчки, да еще разнесенные по тексту ... (: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 09:15 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, про региональные стандарты я не подумал, генерацию исключения тоже убрал. Но собственно, сам код в данном случае не важен, поскольку я привел пример своего стиля оформления. <->интересно, а есть где-нибуть в сети примеры красиво (ну или хотя-бы просто правильно) разработанных программ ? Причем не только сам код, но и какая-нибудь документация к нему ? К сожалению вы не оставили контакта. Напишите мне на e-mail. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 09:35 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Меня начало одолевать любопытство. В этой теме многие высказали свое мнение. А кто какого напрвления в программировании придерживается? XP, RUP, SCRUM, что-то еще ... Очень интересна статистика! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 10:52 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Мое мнение таково, что ни одного из этих направлений в природе не существует как и широко обсуждаемых "тяжелых" и "легких" технологий. Вернее все это существует только в воображении IT-теоретиков, которые давно забыли, что такое программа и как ее писать. Поэтому лично я придерживаюсь направления, которое называется "программирование" (не путать с "кодированием" и "кликаньем контролов на формы"). И всем того же желаю. Извините, если кого обидел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.08.2007, 23:25 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
На эту тему (и вообще для общего развития) стоит читать Кнута и его последователей: http://literateprogramming.com/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 13:10 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Lalr_oneНа эту тему (и вообще для общего развития) стоит читать Кнута и его последователей: http://literateprogramming.com/ Кнут и Уоррен это пожалуй СЛИШКОМ красиво ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2007, 13:25 |
|
||
|
"Красивый" стиль программирования (внутренняя красота кода)
|
|||
|---|---|---|---|
|
#18+
Voyager-8не очень хороший пример с факториалом.. в особенности если учесть что его точный рассчет идёт только до 17, далее числа с мантиссой :) Вот так вообще красивее будет: fac n = foldl (*) 1 [1..n] И, что характерно, будет давать корректные результаты даже для n=1000 и больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2007, 14:42 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=34718978&tid=1345758]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
220ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 522ms |

| 0 / 0 |
