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


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.