AF>>>для меня "серъёзный" код — это код со сложной архитектурой и множеством взаимосвязей и взаимозависимостей.
AR>>А вот это бы я назвал именно сложным кодом.
AF> Иногда да, иногда нет. В таких системах часто сам код очень простой, но именно наличие множества скрытых и не очевидных связей делает его написание делом не простым.
Интересно, как это код "с множеством связей... зависимостей... сложной архитектурой..." может быть простым?
Он может быть легким в разработке, но легкость не есть синоним простоты...
Все, что здесь сказано, может и будет использоваться против меня...
Здравствуйте, DarkGray, Вы писали: AR>>Интересно, как это код "с множеством связей... зависимостей... сложной архитектурой..." может быть простым? DG>Простой в том смысле, что каждый отдельный модуль, класс пишется тривиально, но вот организация всего этого в единую систему требует серьезных усилий
Именно. Большая система из простых элементов "по определению" является сложной системой. И ее "организация" ни в коем случае не является тривиальной и/или простой задачей. Или это уже "мелочи"?
Назвать такой код простым — все равно что назвать простым любой код, ибо любой код состоит из "организованного множества" "простых" элементов языка и API.
Все, что здесь сказано, может и будет использоваться против меня...
Здравствуйте, Vi2, Вы писали:
Vi2>Здравствуйте, AndreyFedotov, Вы писали:
AF>> А вы как думаете — какой код можно назвать "серъёзным" или "сложным"?
Vi2>Наверное,
Vi2>серъёзный код — это код, за который дают серьезные деньги. Весь остальной код — несерьезен, за него дают или мало, или вообще ничего.
Vi2>сложный код — это код, который не может быть написан программистом ниже определенного
уровня.
Сложность кода это его характеристика, которая вполне измерима математически и выражает простоту(сложность) его понимания, модификации, поддержки, вероятность наличия в нем ошибок, возможность и затраты на его тестирование и т.д.
Например http://www.sei.cmu.edu/str/descriptions/cyclomatic_body.html
Vi2>Весь остальной код — несложен, его пишет или любой новичок, или никто не пишет.
Как раз наоборот — программист выше определенного (и достаточно высокого) уровня будет писать максимально простой код
Здравствуйте, postmaster, Вы писали:
P>Здравствуйте, AndreyFedotov, Вы писали:
AF>> Мы тут чудненько пофлеймили на тему "о применимости С++ в серьёзном коде" , но как то за кадром остался вопрос о том, что же такое "серьёзный код". Были правда некоторые попытки определить это понятие, но они быстро иссякли. AF>> А вы как думаете — какой код можно назвать "серъёзным" или "сложным"? Как Вы вообще — разделяете ли код по каким-либо критериям и на какие то категории? И если да, то по каким?
P>Судя по теме "о применимости С++ в серьёзном коде" единственный серьёзный код — это машинный код, набранный переключателями на панели управления. P>Никаких толстенных стандартов на язык программирования, так как описание команд процессора умещается в тонкой книжке. P>BTW, интеловский процессор не может исполнять серьёзный код, т.к. описание самого процессора занимает 3 тома. P>
То есть мы естественным образом приходим к распространённому среди микроэлектронщиков мнению, что интеловские процессоры — "не серьёзные", лоховские, а вот Альфа...
P>Если серьёзно (сорри за каламбур), то серьёзный код — это миф, призванный удовлетворить самомнение пишушего его программиста. P>Программа — это способ решить те или иные задачи. Если она написана в соответствии с требованиями, с заданным качеством и в срок, то IMHO без разницы, на каком языке написан код и как он выглядит (даже если это будет write-only код).
Если "серъёзный" код это способ самоутверждения, то это код, который пишут "серьёзные" программисты.
Тем не менее бывает код очевидный, простой, который легко менять и это обходится без последствий, а есть такой код, который может и выглядит даже проще, но его изменение потруднее разгадывания кросворда....
P>А _сложным_ может быть алгоритм, но не реализующий его код.
Здравствуйте, AndreyFedotov, Вы писали:
AF> Подумав над данным вопросом сам, пришёл к выводу, что для меня "серъёзный" код — это код со сложной архитектурой и множеством взаимосвязей и взаимозависимостей. Какой нибудь навороченый алгоритм, с кучей условий (какая нибудь сложная сортировка или шифрование) — код сложный (алгоритмически), но тем не менее к серьёзному я его не отношу. По тем же причинам к серъёзному коду не отношу большинство модулей ОС, так как на мой взгляд — это код специфический — который должен быть написан крайне аккуратно и хорошо продуман, но чего-либо принципиально сложного в нем нет.
типа вот . Супер простой код без взаимосвязей. Ну уж очень большой .
Здравствуйте, aka50, Вы писали:
A>Здравствуйте, AndreyFedotov, Вы писали:
AF>> Подумав над данным вопросом сам, пришёл к выводу, что для меня "серъёзный" код — это код со сложной архитектурой и множеством взаимосвязей и взаимозависимостей. Какой нибудь навороченый алгоритм, с кучей условий (какая нибудь сложная сортировка или шифрование) — код сложный (алгоритмически), но тем не менее к серьёзному я его не отношу. По тем же причинам к серъёзному коду не отношу большинство модулей ОС, так как на мой взгляд — это код специфический — который должен быть написан крайне аккуратно и хорошо продуман, но чего-либо принципиально сложного в нем нет.
A>типа вот . Супер простой код без взаимосвязей. Ну уж очень большой .
A>http://kernelmapper.osdn.com/map.php
Если ты ещё и сам это написал — то ты просто ДЖЕДАЙ! Однозначно...
А если серъёзно — выглядит пугающе, но интересно — дело тут в коде или в его представлении? Можно умеючи такие диаграммы для простейшего кода начертить, что страшно станет...
да не . Это линукс кернель... причем довольно древний... 2.2 кажется... мне просто показалось что это будет в тему .
AF> А если серъёзно — выглядит пугающе, но интересно — дело тут в коде или в его представлении? Можно умеючи такие диаграммы для простейшего кода начертить, что страшно станет...
Скорее всего в прдеставлении... но и в коде тоже. Линукс (особенно ранние версии) написан "как курица лапой". Правда щас его причесывают помаленьку.
Здравствуйте, Vi2, Вы писали:
Vi2>серъёзный код — это код, за который дают серьезные деньги. Весь остальной код — несерьезен, за него дают или мало, или вообще ничего.
Супер!
Vi2>сложный код — это код, который не может быть написан программистом ниже определенного уровня. Весь остальной код — несложен, его пишет или любой новичок, или никто не пишет.
Мне кажется, что как-раз новичек горазд сложный код писать. А вот умудренных ж/опытом седой девелопер напишет как можно проще (в разумных пределах). Сложность — она диктуется обстоятельствами, но вообще не приветствуется.
Программист серъезного уровня — это такой программист, который напишет простой код там, где вьюноша как-раз обязательно нагромоздит вавилон с висячими садами камней.
ИМХО, серъезный код — это код докучи удовлетворяющий требованиям собственно к коду (эффективность, читаемость и т.п.). Сложность — не показатель.
Здравствуйте, _Obelisk_, Вы писали:
_O_>Здравствуйте, AndreyFedotov, Вы писали: AF>> А какой код пишут "настоящие пацаны"? Кстати на чём? С? С++? C#? Ещё что то более пацанское? _O_>ASM процессора Z80.
О! настальгия... между прочим асм там был ничего. даже недокументированные команды были! И какие!
а вообще серьезный код — это который взаимодействует с большим количеством сторонних компонент и библиотек. чер серьезней компоненты/библиотеки — тем серьезней код который с ними взаимодействует
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, aka50, Вы писали:
A>>типа вот . Супер простой код без взаимосвязей. Ну уж очень большой . A>>http://kernelmapper.osdn.com/map.php
AD>Ага, захотел нас напугать фракталами?
Ты имеешь в виду, что серъёзный код это тот, которым можно людей пугать?
Здравствуйте, IT, Вы писали:
IT>Тогда получается, что российские программисты пишут не серьёзный код. Зато американские всегда серьёзный, даже индусы и китайцы
Вчера наблюдал результат творчества программистов Адобы (ИндизайнЦС). Я бы этих уродов выгнал бы на улицу. Не, лучше отправить в китай или индию. Большего они не стоят.
... << RSDN@Home 1.1.4 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Astaroth, Вы писали:
AR>>(можно вспомнить Саттера с его 23 вариантами выполнения четырех строк внешне "несерьезного" кода).
A>Кого вспомнить?
Такие имена нужно знать, как Маркса/Энгельса
A>Можно линк?
На главной странице сайта есть ссылка "Поиск".
Пользуйся! (Рекомендация лучших поисководов!)
Здравствуйте, VladD2, Вы писали: VD>Вчера наблюдал результат творчества программистов Адобы (ИндизайнЦС). Я бы этих уродов выгнал бы на улицу. Не, лучше отправить в китай или индию. Большего они не стоят.
А еще при отладке плагинов под Адобы заметно, что там есть собранный в дебаге код
Здравствуйте, AndrewVK, Вы писали:
IT>>Не знаю какой код можно назвать "серьёзным", но вот "пальцастым" называется код, который пишут только настоящие пацаны
AVK>Пальцаны?
Ну да. Иногда среди них встречаются "паскальцаны".
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, AndreyFedotov, Вы писали:
AF> Подумав над данным вопросом сам, пришёл к выводу, что для меня "серъёзный" код — это код со сложной архитектурой и множеством взаимосвязей и взаимозависимостей. Какой нибудь навороченый алгоритм, с кучей условий (какая нибудь сложная сортировка или шифрование) — код сложный (алгоритмически), но тем не менее к серьёзному я его не отношу. По тем же причинам к серъёзному коду не отношу большинство модулей ОС, так как на мой взгляд — это код специфический — который должен быть написан крайне аккуратно и хорошо продуман, но чего-либо принципиально сложного в нем нет. AF> Наверняка у каждого из нас своя точка зрения по этому поводу. Предлагаю поделиться...
ты сам ответил на свой вопрос (выделено жирным). я бы только эти два утверждения местами поменял, т.к. нужно сначала (про)думать, а потом делать.