The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Что делает программу высококачественной

19.05.2008 11:17

Шломи Фиш (Shlomi Fish) проанализировал факторы определяющие высокое качество программного обеспечения:

  • Программа должна часто обновляться и быть всегда доступна для скачивания или покупки.
  • Должно быть легко узнать номер версии. Лучше если номер версии можно узнать без установки и запуска из пути для скачивания и из имени архива или из имени папки установки.
  • Код программы должен быть открытым, лучше если лицензия позволяет свободное использование кода.
  • Программа не должна требовать существенной настройки или дополнительного обучения (изменения привычек).
  • Программа должна иметь качественную веб-страницу, где легко найти всю необходимую информацию.
  • Программа не должна быть сложной в компиляции и запуске, не должна использовать особенности компиляторов и должна иметь немного зависимостей.
  • Должны быть легко доступны готовые собранные пакеты или должно быть легко их собрать.
  • Программа должна быть хорошо документирована.
  • Программа должна быть переносимой (работать на как можно большем количестве распространенных платформ).
  • Высококачественная программа должна быть безопасна - это означает что должно быть немного проблем с безопасностью и баги должны исправляться быстро.
  • При выходе новых версий должна сохраняться совместимость со старыми.
  • Высококачественная программа имеет хорошие пути поддержки пользователей - почтовые рассылки, IRC, техподдержку по email, форумы, wiki.
  • Программа должна быть быстрой и не должна потреблять много ресурсов.
  • И конечно-же высококачественная программа должна быть эстетичной и не перегружать пользователя излишней информацией.

Как сделать программу высококачественной?

  • Код программы должен быть модульным и хорошо написанным.
  • В разработке должны использоваться автоматические тесты, лучше если тест пишется до начала написания тестируемого кода.
  • Нужно иметь хороший контакт с сообществом пользователей, которые будут тестировать бета-версии и предлагать улучшения.
  • Релизы должны быть частыми.
  • Управление проектом должно быть объективным и дальновидным.
  • Слишком навязчивая реклама вредна, и совершенно недопустима неправдивая реклама.
  • И последнее: хорошее название программы важно.



  1. Главная ссылка к новости (http://www.shlomifish.org/phil...)
Автор новости: zyx
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/15753-software
Ключевые слова: software, quality
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (55) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, хзкто (?), 11:26, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "...и должна иметь немного зависимостей."
    спорное утверждение
     
     
  • 2.26, Guest (??), 16:02, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, утверждение как раз очень правильное.
     
     
  • 3.40, User294 (ok), 03:03, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Чем меньше зависимостей тем меньше потенциального геморроя с программой.Ставить для меговой программы 100 мегов зависимостей - маразм, это не есть хорошая программа.Чем меньше зависимостей тем меньше прога зависит от чужих уязвимостей и тем меньше потенциально там ошибок.Что вы будете делать если у юзера глючить будет не ваша прога а поюзанная библиотека с ее конкретной версией?Вы за этот компонент не отвечаете но головняка огрести от него можете на раз.Еще не набили шишек?Так набьете, вопрос времени.Но с другой стороны code reuse - великая вещь.Так что нужна разумность - юзать только те библиотеки которые реально нужны и только если это заметно снижает размер вашего кода и трудоемкость кодинга.В противном случае есть шансы налететь на чужие глюки и потом юзеры будут доставать ВАС, потому что глючит ВАША программа, пусть и с чьей-то там библой.
     
     
  • 4.52, Аноним (52), 11:34, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >есть шансы налететь на чужие глюки и потом юзеры будут доставать ВАС, потому что глючит ВАША программа, пусть и с чьей-то там библой

    Если ВЫ не будете использовать эту библиотеку, то автор библиотеки не узнает о наличии проблемы с ней. Если глючит библиотека - надо как можно быстрее сообщить её автору об этом.
    А вот если ВЫ напишете свой код, аналогичного назначения, то рискуете пройтись по всем граблям, по которым УЖЕ прошёл и решил автор библиотеки, которую ВЫ собрались повторять.
    И когда у ВАС будет глючить код, который вы могли бы использовать готовый и отлаженный из сторонней библиотеки, вы ещё много раз будете думать "ну почему я не взял готовую библиотеку с нужным мне функционалом?? зачем мне этот гемморой с отладкой когда, который давно отладили другие??"

     

  • 1.2, Nick (??), 11:34, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > должна иметь немного зависимостей

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

     
     
  • 2.5, parad (ok), 11:41, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    у перла, опенссл нет зависимостей. постгрю можно скомпилить без доплиб. в общем много что есть безсвязанное и это действительно определяет качество: чем меньше - тем лучше.
     
     
  • 3.7, vitek (??), 11:53, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    зато сколько у perl'а доп. модулей!
    > в общем много что есть безсвязанное

    а безсвязанное поэтому и называется безсвязанным.

    другое дело, чтобы зависимости были доступны и стандартизованы.
    для этого и появилась LSB (Linux Standard Base):
    http://ru.wikipedia.org/wiki/Linux_Standard_Base

     
  • 3.8, Nick (??), 11:54, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >и это действительно определяет качество: чем меньше - тем лучше

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

     
  • 3.9, vitek (??), 11:55, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    зато сколько у perl'а доп. модулей!
    > в общем много что есть безсвязанное

    а безсвязанное поэтому и называется безсвязанным.

    другое дело, чтобы зависимости были доступны и стандартизованы.
    для этого и появилась LSB (Linux Standard Base):
    http://ru.wikipedia.org/wiki/Linux_Standard_Base

     
     
  • 4.12, vitek (??), 12:01, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    сори.
    ICA прокси колбасит. :-)
     
  • 2.21, celz (?), 14:05, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    А вот Кнут с вами не согласен:
    "...Я также должен признаться в своей склонности отрицать моду повторного использования кода. По мне, «повторно редактируемый код» намного лучше неприкосновенного черного ящика, или набора программ. Об этом я мог бы сказать очень много. По-видимому, я не смог бы переманить на свою сторону человека, полностью убежденного в замечательных качествах повторно используемого кода, но и меня никогда не удастся убедить в том, что повторно используемый код обычно не представляет опасности..."(http://citcity.ru/18573/)

    Если уж говорить о велосипедах, тогда все таки для программиста важно из каких частей этот велосипед состоит, а то "велосипедныx колес" не собирешь! :)

     
     
  • 3.23, Nick (??), 14:12, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    аудит используемого кода - одно дело.
    Но когда этото аудит делается другой командой - то речь всего лишь об их уровне и доверии им.

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

    Собсно, просто разные вещи.

     
  • 2.27, Guest (??), 16:03, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Бред.
     
     
  • 3.28, Nick (??), 16:08, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Бред.

    предлагаешь КДЕшникам переписать для себя QT?

     
     
  • 4.42, User294 (ok), 03:16, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>Бред.
    >предлагаешь КДЕшникам переписать для себя QT?

    Это один из случаев когда библиотеки используются по делу.Сделать свой менее глючный велосипед - сложная, времяемкая и затратная задача.В этом случае использование библиотек полностью оправданно.А вот если вы чтобы посчитать сраный MD5 потребуете в зависимостях какую-то экзотичную библу вдвое тяжелее вашей программы которую надо качать отдельно - я вас мягко говоря не пойму и поищу программу автор которой не вы**ывался а засунул код MD5 в свою программу.Ибо вломак на каждый писк библиотеки качать.Для Windows даже есть такое понятие: DLL Hell.Описывает эффект разбухания системы за счет куч ДЛЛ юзаемых программами по делу и без, после себя они их не подтирают (сие частично верно и для *nix - редко кто выколупывает библиотеки после сноса программ) а то и вовсе конфликтуют по версиям.От этого *никсы к счастью в основном избавлены, хотя увидеть сообщение нечто типа warning, library version mismatch - compiled with header version X, installed version Y - тоже не больно приятно.И спасибо если предупредят еще, а то вовсе что-то где-то отвалится и гадай потом кто был пудак, автор программы или библы или все вместе напортачили.

     
     
  • 5.51, Nick (??), 11:16, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Ибо вломак на каждый писк библиотеки качать.Для Windows даже есть такое понятие:
    >DLL Hell.

    Как же как же...
    Для RPM-based с бедным репозиторием такое тоже есть
    RPM-hell %)


    >Описывает эффект разбухания системы за счет куч ДЛЛ юзаемых программами
    >по делу и без, после себя они их не подтирают (сие
    >частично верно и для *nix - редко кто выколупывает библиотеки после
    >сноса программ)

    вы точно не спутали смаздай и *NIX? в Никсах ест ьпакетные менеджеры.
    А расчитывать нонче программирование на то, что кто-то ведет свою систему методом
    "configure && make && make install" - это есть маразм.


    Вобщем, корректировать свою работу с учетом любого возможного бардака у юзера - есть бесконечно долгое занятие. Жизнь же - не бесконечна.

     
  • 2.41, User294 (ok), 03:08, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >> должна иметь немного зависимостей
    >вот как раз это говорит о низком качестве программы. Потому как библиотеки
    >нонче есть для чего угодно и если они не использованы -
    >то их просто не искали, а изобретали свой очереднойц велосипед; избыточность
    >кода.

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

     

  • 1.3, Nick (??), 11:36, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > При выходе новых версий должна сохраняться
    > совместимость со старыми.

    нужно дополнение:
    ...какое-то количество версий.


    Иначе - маздай. Совместимость с досом - и ГОРА глюков из-за этого.

     
     
  • 2.43, User294 (ok), 03:18, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >нужно дополнение:
    >...какое-то количество версий.

    Все хорошо в меру.И использование библиотек и сохранение совместимости.Любую даже самую хорошую вещь можно использовать так бестолково что всем от нее будет весьма плохо.

     

  • 1.4, Nick (??), 11:37, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > хорошее название программы важно

    вообще без вариантов

     
     
  • 2.44, User294 (ok), 03:26, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >> хорошее название программы важно
    >вообще без вариантов

    +100.Как вы яхту назовете, так она и поплывет.Дурное невзрачное название сгубило тысячи тысяч неплохих внутри проектов.От себя хочется добавить что полное название программы должно как-то описывать ее.Например, DTA хорошее название если юзеры знают что это аббревиатура от Down Them All.Данное название сразу позволяет понять что это за штука.А вот если бы там было написано Cool New Shit - кто его знает что этот кул делает?Иной раз так трудно найти хороший проект.Потом через годы узнаешь что оно было.Да только названием не вышло, описание бестолковое и потому под внимание не попало.Можно lighttpd и nginx сравнить.У первого название сразу говорит о том что оно делает, у второго - а хрен бы его знает что за штука?Стоит ли удивляться что хотя программы одного класса, первый стал популярнее раньше и по сей день более популярен?Да, со временем о nginx узнают, потому что его используют большие сайты и это заметно.Но далеко не любому проекту везет настолько же.Поэтому тысячи хороших проектов прозябают в неизвестности из-за недальновидности авторов.

     

  • 1.6, Аноним (52), 11:52, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как обычно - нагнать побольше букв, тебя будут не по делу комментить, а просто р... большой текст свёрнут, показать
     
     
  • 2.11, Nick (??), 11:57, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >> Программа должна иметь качественную веб-страницу, где легко найти всю необходимую информацию.
    >
    >Это вообще про маркетинг, а не про качество софта.

    никогда не искали нужную информацию о проекте на сайте проекта, который работает на Trac'е?? Вот это пример _плохого_ веб-сайта. А, значит, трудно найти справку о программе - и качество продукта вообще - падает.

    >И т.д. Жаль, что такую чушь не лень переводить и публиковать. Лучше
    >бы тот же гайд по UI от Apple перевели и показали
    >всем любителям изобретать велосипеды.

    проприетарщину поддерживать? Вы в своем уме?

     
     
  • 3.16, Аноним (52), 13:03, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Качество справки и качество продукта - не одно и то же Если оно, раз поставленн... большой текст свёрнут, показать
     
     
  • 4.17, Nick (??), 13:10, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>проприетарщину поддерживать? Вы в своем уме?
    >Какая связь пропиетарщины и учеба, как делать _нормальные_ интерфейсы

    Упоминание конкретной конторы, которая производит закрытый софт - есть ее поддержка (через рекламу своим постом - если непонятно).

     
     
  • 5.19, Dr Orwell Gonzo (?), 13:56, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Какая к чёрту разница, какой софт она производит, если речь идёт об открытом учебном документе для дизайнеров?

    Надо уметь заимствовать лучшее. В т.числе из пропиетарных платформ.

    За хороший интерфейс лицензионных отчислений платить не надо.

     
     
  • 6.22, Nick (??), 14:08, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Надо уметь заимствовать лучшее

    да, но не рекламировать источник.
    Потому как именно для саморекламы они и выкладывают подоюные материалы.


    >За хороший интерфейс лицензионных отчислений платить не надо.

    За паленую венду тоже платить не надо... ;))  до поры до времени...

    Все взаимосвязано.

     
  • 6.48, User294 (ok), 04:05, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Надо уметь заимствовать лучшее. В т.числе из пропиетарных платформ.

    В кедах 4 уже позаимствовали уе**щную менюшку Start из дристы, чуток облагородили, но говно, даже если его сахаром посыпать все-равно будет неаппетитное, уж извините.Осталось еще логику кнопок окон из мака передрать и получится шедевр "самое неюзабельное но гламурное поделие года".На посмотреть - да, круто.На поюзать да не 5 минут а полгодика - тьфу, проще застрелиться.

     
  • 5.20, Dr Orwell Gonzo (?), 13:56, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Какая к чёрту разница, какой софт она производит, если речь идёт об открытом учебном документе для дизайнеров?

    Надо уметь заимствовать лучшее. В т.числе из пропиетарных платформ.

    За хороший интерфейс лицензионных отчислений платить не надо.

     
     
  • 6.30, vitek (??), 16:20, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > За хороший интерфейс лицензионных отчислений платить не надо.

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

     
  • 2.45, User294 (ok), 03:47, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Нынче так не катит В сложных программах даже с хорошим качеством кода случаются ... большой текст свёрнут, показать
     

  • 1.10, const (??), 11:56, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Программа не должна требовать существенной настройки или дополнительного обучения (изменения привычек).

    А ведь привычки-то у всех разные... Так что обучение (самообучение) вполне допустимо, но чем меньше, тем лучше.

     
  • 1.13, Michael (??), 12:05, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    _Малое_, а не нулевое. Если ради какой-нибудь одной функции программа требует библиотеки, которая больше никому нахрен не нужна - такую программу сложно назвать каественной. Понятно, что грань тонкая, но она есть.
     
  • 1.14, Smile (??), 12:22, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Выглядит как новый велосипед, при чем с одной педалью. Понятие качества программного средства достаточно давно формализовано, построено несколько достаточно универсальных моделей характеристик качества и разработаны методики и рекомендации  оценивания в ходе жизненного цикла (например в комплексе стандартов ISO по информационным технологиям - ISO 9126, ISO 14598), написана масса статей и книг (кстати и на русском тоже =)), реализованны на практике модели и методы управления качеством, проводится сертификация на соответствие этим требованиям.
    Разрабатывать свой вариант показателей можно и полезно, только... зачем игнорировать уже существующий опыт?
     
     
  • 2.15, anonymous (??), 13:01, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    как зачем? - чтобы показаться умным
     
  • 2.46, User294 (ok), 03:56, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >(например в комплексе стандартов ISO по информационным технологиям - ISO 9126,
    >ISO 14598), написана масса статей и книг

    Если уж вы о русском.Знаете ли, есть такой стандарт, ISO 8859.В частности и для кодировки русского языка как раз, если не ошибаюсь, ISO 8859-5.Так вот.А покажите теперь где он используется?Почему-то в *никсах было KOI8-R а потом UTF-8.В винде CP866 а потом 1251.А на самый стандартный стандарт все дружно поклали ;)

    Отсюда мораль: то что в ISO написано конечно круто.Но к реальной жизни может и не иметь никакого отношения.Равно как и соблюдение каких либо ISO нихрена никому не гарантирует качества программы и ее хорошего восприятия юзерами.В СССР множество изделий было стандартно и соответствовало.А толку?Дошло до маразма.Ну пользуйтесь себе "жигуленками" и "рубинами", не надо покупать "пежо", "тойоты", "филипсы", "самсунги" и "сони".Ага?На жигулята и рубины и схемы есть и даже вычерчены по исо, а толку с того? :)

     
     
  • 3.54, oppofan (ok), 12:04, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >На жигулята и рубины и схемы есть и даже вычерчены по исо, а толку с того? :)

    Улыбнуло, честно.... потому как езжу на жигулёнке и смотрю Рубин... Правда езжу чаще, чем смотрю (не сломан, просто не любитель). И честно говоря, не чувствую себя ущемлённым :-) Вот совсем не чувствую...
    К чему? К стандартам, как таковым отношения не имеет. Хотя сказал красиво :-)

     

  • 1.18, Konwin (ok), 13:27, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Все необходимые критерии качественной разработки любого ПО придуманы еще на заре Unix систем и хорошо изложены в книге Рэймонда - не надо ничего нового придумывать...
     
  • 1.24, Оммм (?), 14:55, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >проприетарщину поддерживать? Вы в своем уме?

    не проприетарщину, а принцыпы построения gui интерфейсов и у апл они очень даже замечательные.

    мало того, апл раз в год организовывает конкурс на самоей лутшее по юзабильности приложения для мак платформы и туда кстате попадали опенсорс разработки (правда макось ориентированные)

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

     
     
  • 2.47, User294 (ok), 04:01, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >не проприетарщину, а принцыпы построения gui интерфейсов и у апл они очень
    >даже замечательные.

    Ага, особенно кнопки окна вверху экрана.Просто шедевральное юсабилити.Ага.

    > конкурс на самоей лутшее по юзабильности приложения

    Угу, а инвалиды вон тоже организовывают забеги.Отсюда не следует что результаты оных забегов стоит признать нормальными для ВСЕХ.Улавливаете?Эппл бы сперва сам с юзабилити своей системы разобрался а потом бы конкурсы устраивал.А то ишь, каждый картавый мечтает стать логопедом :)

     

  • 1.25, Аноним (52), 15:39, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "это означает что должно быть немного проблем с безопасностью"

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

     
     
  • 2.55, zyx (?), 18:03, 29/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >"это означает что должно быть немного проблем с безопасностью"
    >
    >переводчику пять баллов :). правильно - если у программы не будет проблем
    >с безопасностью, то выполнение пункта "частый выпуск новых версий" представляется мне
    >затруднительным :).

    Спасибо за высокую оценку :)
    Но Вы забываете насколько быстро развивается техника в наше время.
    - Интерфейс 20-летней давности еще как-то может использоваться и даже нравиться, а все остальное должно постоянно развиваться и расти.

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

     

  • 1.29, Дмитрий Ю. Карпов (?), 16:14, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Программа должна часто обновляться и быть всегда доступна для скачивания или покупки.
    > Релизы должны быть частыми.

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

    > Должно быть легко узнать номер версии. Лучше если номер версии можно узнать без установки и запуска из пути для скачивания и из имени архива или из имени папки установки.

    В пакаджах во FreeBSD номер версии содержится в имени файла-архива.

    > Программа не должна требовать существенной настройки или дополнительного обучения (изменения привычек).

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

    > Программа ... должна иметь немного зависимостей.

    Количество зависимостей никак не коррелирует с качеством программы. Допустим, программист выносит часть кода в разделяемые библиотеки, а эти библиотеки делает в виде отдельных пакетов, от которых зависит основной (это позволяет др.программитстам использовать этот код). Количество зависимостей растёт, качество исходного продукта не меняется.

    > При выходе новых версий должна сохраняться совместимость со старыми.

    В отношении операционной системы это означает и соместимость с ранее написанными вирусами. ;)

     
     
  • 2.31, Nick (??), 16:21, 19/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >> Программа ... должна иметь немного зависимостей.
    >
    >Количество зависимостей никак не коррелирует с качеством программы. Допустим, программист выносит часть
    >кода в разделяемые библиотеки, а эти библиотеки делает в виде отдельных
    >пакетов, от которых зависит основной (это позволяет др.программитстам использовать этот код).
    >Количество зависимостей растёт, качество исходного продукта не меняется.

    вот. Наиболее рациональное замечание.

     
     
  • 3.49, User294 (ok), 04:08, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >вот. Наиболее рациональное замечание.

    В библиотеки есть смысл выносить то что этого реально заслуживает.SSL - да, монструозный протокол и его сложно самостоятельно с нуля реализовывать.А вот всякую тривиальную лажу в виде библ выносить смысла нет.А то потом будет как в винде - вся система засрана DLL.Юзаемыми аж 1 копией программы в 1 экземпляре.И нахрен их делали как отдельные библы?Чтобы было чем систему после деинсталла программы подзасрать?

     
     
  • 4.50, User294 (ok), 04:10, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати да, позволять программерам судить о качестве своих же программ - это то же самое как позволять преступникам судить самих себя.Объективность ровно такая же.
     
  • 4.53, Аноним (52), 11:39, 21/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Сдаётся мне, вы не понимаете, что такое dll. Вероятно, вам невдомёк, что одна программа может использоваю свою dll, например, для локализации, и смена юзыка интерфейса будет происходить подгрузкой нужной dll.
     

  • 1.32, КтулхЪ (?), 17:19, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >"...и должна иметь немного зависимостей."
    >спорное утверждение

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

     
  • 1.33, dRiZd (?), 20:03, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я знаю такую;) 'Hello World!'
     
  • 1.34, vitek (??), 20:41, 19/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    любую идею можно довести до абсурда.
     
  • 1.35, Аноним (35), 08:34, 20/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "...и должна иметь немного зависимостей"
    одновременно с
    "Код программы должен быть модульным и хорошо написанным"

    Ужасная статья.

     
     
  • 2.36, Аноним (52), 11:12, 20/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >"...и должна иметь немного зависимостей"
    >одновременно с
    >"Код программы должен быть модульным и хорошо написанным"

    imho русский не лучший язык для программирования и описания процесса, зависимости - слишком многозначное понятие. Функции тоже зависят друг от друга, это плохо давайте и с этим бороться. Например хочу получить данные из ОС могу вызвать posix функции, могу специфик для своей платформы или прочитать из /proc, использовать случайное api с похожим функционалом. Думается автор про эти зависимости, о чем спорить? просто по делу и без особых понтов.
    >
    >Ужасная статья.

    наверно, но сказано на пальцах просто и не более ужасно чем куча левых поделок знатоков  ISO&rfc, если не понимают значит надо напоминать, все логично..

     
     
  • 3.38, Аноним (-), 14:56, 20/05/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >
    >наверно, но сказано на пальцах просто и не более ужасно чем куча
    >левых поделок знатоков  ISO&rfc, если не понимают значит надо напоминать,
    >все логично..

    В принципе, да, я согласен. Это актуально, если вернувшись из отпуска, не можешь вообше помнишь а какже мне продолжить разрабатывать хорошо. А так посмотрел: ага, программы должны быть модульными и хорошо написанными. Хватаешься за голову и говоришь: "Точняк! Как же я сразу не догадался".

     

  • 1.37, GoSha (?), 11:41, 20/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    БУ-ГА-ГА!!!
    Вы видали программы которые удовлетворяют хотябы половине этих требований?
     
  • 1.39, Аноним (35), 15:01, 20/05/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А перевод на русский?
    Для многих это важно, но разработчики часто забывают. Вот в 'Hello World!' напимер нет. :-)
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру