LINUX.ORG.RU

Академизм в программировании?


0

0

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

anonymous

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

krum
()

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

branicki
()

академизм в программировании не отличается от обычного академизма -- от него растут волосы на ладонях

dilmah ★★★★★
()

сейчас вот такой академизм: <a href="#" onclick="help(); return false">Помощь</a>

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

vilfred ☆☆
()

Наверное это применимо к premature optimisation.

anonymous
()

Обычно, "академический"=="учебный".

IMHO, в программировании это могло бы означать игнорирование разного рода "несущественных" проверок, т.е. неполный контроль данных (например, отсутствие "защиты от дурака", отсутствие обработки "исключений", использование "грязных данных", etc), и отсутствие оптимизации кода, в пользу понятности/прозрачности алгоритма.

> Есть такой термин, пускай и негласный, как "академизм".

Вообще-то, выясняй это у того, кто так ругается...

:-)

Neksys ★★★
()

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

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

А найти в каждом случае правильный подход это особое искусство.

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

>отсутствие оптимизации кода, в пользу понятности/прозрачности алгоритма.

А я видел прямопротивоположный пример: переменные вида i,ii,iii, a1, a2, a3 и тп., хитроумные циклы, хотроумные арифметические оптимизации а ля "я математик" и совершенно невнятный общий ход вычислений. Программы была, хоть и небольшая (учебный пример), но абсолютно нечитаемая, как будто призовая программа конкурса PuzzleYourCode. И всё это безобразие было приведено в методичке. Или это не академизм?

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

> Или это не академизм?

Разумеется нет. Если только это не пример "как не надо писать программы" ;).

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

>Использование шаблонов проектирования и.т.п.

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

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

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

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

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

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

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

По всей видимости, ты наблюдаешь рождение нового шаблона :)

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

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

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

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

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

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