Як розмежувати тривіальне та нетривіальне програмне забезпечення? [зачинено]


11

То що насправді робить програму тривіальною?

"Якщо тільки не банальне програмне забезпечення" так часто використовується в дискусіях з програмування. Я вважаю це дуже розпливчастим в тому сенсі, що я не можу реально зрозуміти, чи є "щось важливе, тому що його нетривіальне програмне забезпечення" або "нетривіальне програмне забезпечення, оскільки щось стало дуже важливим".

Наприклад, багато разів у питанні одиничного тестування я чую, "якщо його дрібниці вам не потрібно буде провести одиничне тестування".


9
Судячи з деяких програмістів, з якими я працював, я б сказав, що для них відмінність зводилася до "ваш код тривіальний; мій код - ні".
ПСУ

Чи можете ви надати обговорення програмування, в якому ви бачите, що ця цитата використовується? Здається, у відповідях є різні тлумачення.
Стівен Євріс

Перевірте оновлене запитання.
NVM

Відповіді:


12

Я збираюся вийти на кінцівку тут і сказати:

Тривіальна програма - це та, яка не впливає безпосередньо на бізнес.

Виробнича фірма вважає, що її програмне забезпечення для бухгалтерського обліку є тривіальним, але програмне забезпечення, яке керує роботом-рукою, яка рухає киплячу сталь, є критичною. Вони можуть мати справу з помилками та низьким рівнем підтримки в першому, але не в останньому. Якщо є проблема, вони потребують її виправлення зараз .


Хоча ще одна відповідь має більше балів, мені найкраще подобається ця відповідь. Я поставив запитання, тому що я не зовсім впевнений, чи робота, яку я роблю, є тривіальною чи ні, і це вірний спосіб зрозуміти, чи вважається це тривіальним «бізнесом» чи ні. Для екс. тривіальне програмне забезпечення може піти без тестування одиниць, і це дійсно не залежить від рядків коду або складності. Все, що важливо, важливо, чи це критично для бізнесу чи ні.
NVM

+1, хороший пункт. Корпоративний оверлорд іноді має дуже різні уявлення про те, що вважається "тривіальним". Я додав кілька до своєї відповіді, щоб це відобразити.
FrustratedWithFormsDesigner

+1 - Я думаю, що ця відповідь найкраще описує контекст терміна, як він застосовується у питанні. Інша «відповідь вищої точки» точна, але лише в загальному контексті. Я впевнений, що цей перевершить його набравши голосів, як це вважається.
Джоель Етертон

2
Коли розробники програмного забезпечення кажуть тривіально, вони зазвичай посилаються на складність програмного забезпечення, а не на вплив на бізнес. Сценарій, який копіює деякі файли від A до B, був би тривіальним, але все ще може безпосередньо впливати на бізнес, якщо він не працює.
ЖакБ

16

Я вважаю, що найпоширенішим наміром цієї заяви є те, щоб програма мала такі характеристики:

  • Це маленьке.
  • Короткий термін експлуатації.
  • Не потрібно подальшого продовження.
  • Лише один розробник.

2
+1, усе це має вирішальне значення. На жаль, у світі з постійно мінливими вимогами вам доведеться іноді розширювати "тривіальне" програмне забезпечення за межі його природного терміну.
l0b0

1
Невеликий з точки зору LOC, невеликий з точки зору складеного двійкового розміру, невеликий за часом, необхідним для його розробки? Крім того, я заперечую, що короткий термін служби не означає тривіального, а тривіальний не означає короткого терміну експлуатації. Я бачив випадки, коли програмне забезпечення з тривалістю тривалості лише 6 місяців розроблялося принаймні вдвічі довше і було важливою мостовою системою. Я бачив системи перетворення даних, які використовувалися рівно один раз, але розроблялися понад рік і були далеко не банальними. І тривіальні прогреси, як тральщик, здаються, мають дуже тривалий термін експлуатації.
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner: невеликий, як у, вікно курсу 100x100px. я маю на увазі малий, як у рядках коду, які потрібно записати, пропорційний часу, необхідному для його розробки. Тривалість життя не суттєва, ви праві, але часто характерна для обговорення більш просунутого підходу та простого підходу.
Стівен Євріс

Я не погоджуюся з тим, що низький рівень LOC завжди передбачає тривіальне. Іноді найскладніша частина програми, найскладніша для виправлення, найскладніші алгоритми, вписується в <20 рядків коду. А програма, яка складається здебільшого за сотнями ліній автогенерованих геттерів / сеттерів - це тоді нетривіально, хоча навіть розробнику її не потрібен?
FrustratedWithFormsDesigner

1
@FrustratedWithFormsDesigner: Я вважаю, що ви маєте інше тлумачення питання, ніж я. Моя відповідь стосується факту вирішення тривіального рішення проти складного. Ваша відповідь стосується "важких" проти "легких" для вирішення проблем. Можливо, питання ОП слід трохи уточнити.
Стівен Євріс

14

Викинувши його повністю, бінарні файли та джерела. Якщо хтось помічає, це було не банально.


6
+1 Це змусило мене сміятися, і це також має сенс.
NVM

8

Тривіально ...

  • щось, що вже існує, так навіщо заново вигадувати колесо?
  • щось, що може бути легко побудовано, склавши сценарії кількох інших програм або записавши невеликий код, який використовує існуючі бібліотеки, які роблять те, що потрібно зробити.
  • те, що пересічний студент з нижчим рівнем кваліфікації може зробити як невелике, так і середнє домашнє завдання.
  • щось, що має детальні вимоги, які могли б легко поміститися на коктейльній серветці.
  • щось, що ви могли б кодувати, відволікаючись / п’яні / у вільний час 4 або 5-хвилинних шматочків.
  • те, що можна створити за допомогою простого інструмента для генерації коду.

У корпоративному середовищі я додам:

  • щось, що ділові користувачі не проти чекати деякий час на виправлення.
  • щось, що використовується внутрішньо, що не має офіційної підтримки з боку ІТ.
  • що є пріоритетним серед найнижчих пріоритетів для бізнесу, коли робите планування ресурсів і планування.

4

Я б визначив тривіальну програму як таку, яку можна розумно закодувати:

  • В одному сидінні.
  • Як єдиний файл / модуль (припускаючи, що ви не програмуєте на Java чи якусь мову, що примушує супер дрібне розщеплення модулів).
  • Будь-яким порядним програмістом "джек усіх торгів", а не фахівцем.

3

Ось мої приклади "тривіальних" програм:

  1. "Фіктивний" проект, який я налаштував і почав кодувати просто так, щоб я міг випробувати технологію або зразок коду. Не має наміру розгортатись і навіть нікому не показуватися.
  2. Демо-код, написаний для технічних презентацій.
  3. "Разовий". Я маю на увазі швидку програму, яку мені довелося створити, щоб використати один раз, оскільки це дивна ситуація з даними, яку потрібно було певним чином перемістити, або те, що потім буде негайно замінено чимось більш постійним.

3

Програмного забезпечення Trival не існує, це коли ви почуєте вимоги і те, що буде тривалим, коли насправді це завжди не тривал

Ось цитата, яку я бачив на Usenet десять років тому, вона є ще актуальнішою зараз.

Складність програмного рішення обернено пропорційна складності пояснення того, що він повинен робити. - Невідомо


-1

Програма, яка є лише безліччю методів просто геттера / сетера. Немає логіки програмування. Може щось із кількома петлями.

Це моє визначення тривіального.


-1

Наше робоче визначення - це щось, від чого більше нічого не залежить ».

На жаль, було кілька тривіальних прототипів, які стали нетривіальними продуктами виробництва.


-3

Я також чув, що він використовувався в контексті впливу програми на загальне планування проекту. Якщо певна специфікація не змінює терміни доставки товару, він підпадає під мітку тривіальності.

Я знав одного програміста, який, як правило, використовував "тривіальне" як синонім "Навіть не варто обговорювати".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.