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 ★
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.