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


Відповіді:


231

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

- Брайан В. Керніган


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

6
Слідство інакшого сенсу: Не забувайте, що діаграма може збільшити вашу силу мозку. Можна замінити "запам'ятати структуру великої речі" на енергонезалежний папір.
Тім Вілліскрофт

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

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

2
Але що робити, якщо це "ідеальний" код? Немає способу "налагодити" це.
Матін Ульхак

183

Ходьба по воді та розробка програмного забезпечення із специфікації легко, якщо обидва заморожені.

- Едвард V Берард


Цитата року, я буду використовувати цей
Gortron

Я ненавиджу цього. Це ніколи не буває, так кого це хвилює?
JP Alioto

138

Це завжди займає більше часу, ніж ви очікували, навіть якщо ви враховуєте закон Хофстадтера.
  - Закон Гофстадтера


72
Мозок стека переповнюється.
Натан Тейлор

3
@Joe D: Мені цікаво, як би ви переписали рекурсивне англійське речення в одне нерекурсивне речення.
Джон Перді,

4
Він може сходитися для достатньо малих значень "довше"
mouviciel

3
+1 - Я пишаюся тим, що зараховую себе до числа найбільших мільярдів програмістів разом із Дугласом Хофстадтером.
Пітер Тернер

@gf: Коли воно перетворюється на визначення джерела згодом (з тире), головне вступ не є гарантійним ("A: Blah." -> "Blah. - A"). Це не видаляє частину цитати.

126

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

- Рік Осборн


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

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

8
@webbiedave Ви працюєте на ReiserFS? :)
Ніл Ейткен

Компанія повинна насправді ненавидіти вас, якщо вбивця влаштувався на вашу роботу.
Матін Ульхак

118

Ви можете мати проект:

  • Зроблено вчасно
  • Зроблено на бюджет
  • Зроблено належним чином

Виберіть два.

- Невідомо



5
Нагадує мені подібний трикутник, але з жінками. "Ви можете мати дівчину, яка: Розумна, приваблива, має гарну особистість".
Maxpm

Не забувайте, що винятки існують, хоча вони рідкісні - не розраховуйте на це.
Mircea Chirea

5
@Maxpm: версія, яку я почув, була "4 S: Smart, Sexy, Sane, Single. Виберіть 3."
Мейсон Уілер

1
Отже, коли немає обмежень у часі та бюджеті, ви не можете це зробити належним чином. Добре знати.
Ансан

111

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

- Джеймі Завінський


5
Вічна класика
Фактор Містик

5
Деякі люди, стикаючись з проблемою, думають, "я знаю, я скористаюся <реалізацією деяких проблем>". Зараз у них дві проблеми.
Callum Rogers

40
Деякі люди, стикаючись з проблемою, не думають, вони просто розміщують повідомлення на сайті StackOverflow
Метт Еллен

5
Деякі люди не розуміють регулярних виразів і ненавидять їх через те, що інші.
Увімкнення

3
@Yar - Я ніколи не знаходив синтаксис тупим особисто, і щільність - це добре. Навіщо виражати щось на зразок відповідності шаблону у більш детальному форматі? Якщо чіткість потрібна для чогось складного, розширений режим можна використовувати з коментарями.
Включення

110

У теорії немає різниці між теорією та практикою. Але, на практиці, є.

- Ян Л. ван де Снепшот


27
Я також чув "Різниця між теорією та практикою менша в теорії, ніж на практиці".

1
Формулювання Роджера Пейта - це те, що я чув, написане Оліном Шиверсом в «Історії Т». Пол Грем розповідає про це тут: paulgraham.com/thist.html
Майкл Х.

2
Я б сказав, якщо теорія не перекладається на практику, то теорія просто неповна.
Рей Міясака

105

На будівельному майданчику можна використовувати гумку або кувалду - Френк Ллойд Райт

Не зовсім цитата програмування, але це, безумовно, стосується.


14
Високо застосовний ІМО
Джон Макінтайр

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

8
За винятком випадків, коли він підриває Ariane 5 (Flight 501) або дозує людей із смертельно високим рівнем радіації ...
Frank Shearar

2
За іронією долі, я вважаю, що багато більш заплутаних будівель Френка Ллойда Райта прийшли в непридатність.
Maxpm

1
@TomWij, @Walter, @Roger: Будь ласка, утримуйтесь від забруднення цього веб-сайту метаталом. Якби мені хотілося почути переслідування, я б завітав на meta.stackoverflow.com. Тут вам слід вести цю захоплюючу і позачасову розмову.
Дан Розенстарк

103

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

- Рік Кук


98

Вимірювання прогресу програмування за допомогою рядків коду подібно вимірюванню прогресу будівництва літака за вагою.
  - Білл Гейтс



3
Це вірно на кількох рівнях. Самоцвіт.

3
Ключова відмінність полягає, звичайно, у тому, що відома кінцева вага літака, тоді як остаточна кількість LOC програмного забезпечення невідома.
mmyers

5
То чому чому більшість продуктів Microsoft викликає у мене таке відчуття, що я прикований ногою до літака, який намагається вийти на злітно-посадкову смугу?
Шарпі

86

У комп'ютерній науці є дві важкі проблеми: недійсність кешу, іменування речей та помилки, що не входять в режим 1.

    - Леон Бамбрік (@ secretGeek )

(Насправді, все, починаючи з http://q4td.blogspot.com/search/label/programming, бачу, як я лікую список.)


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

Це 3 речі. Перші два - оригінальна цитата Філа Карлтона. @CodexArcanum. Добре називати речі - це фокус.
StuperUser

@StuperUser whooosh! ти пропустив жарт!
Agos

Потрапив дві секунди, щоб отримати це після того, як ти це вказав. Герп дерп.
StuperUser

85

Дев'ять людей не можуть завести дитину протягом місяця.
  - Фред Брукс, міфічний чоловік-місяць


14
технічно: 18 людей не можуть народити дитину протягом місяця
Here Be Wolves

13
@HereBeWolves або 10
WalterJ89

14
Що не так з 1 хлопцем та 8 дамами? Звучить приблизно так, як мені.

4
Якщо ми ходимо на близнюків чи трійнят, нам потрібно менше дам.

12
У той час як перша дитина буде страждати на затримку 9 місяців, правильний трубопровід продовжуватиме виставляти 1 на місяць ...
Брайан Ноблеуч,

82

Ми повинні забути про невеликі ефективності, скажімо , близько 97% часу: передчасна оптимізація є корінь всіх зол. Але ми не повинні пропускати наші можливості на критичних 3%.
  - Дональд Кнут, Структурне програмування з переходами до заяв , обчислювальні дослідження JACM, т. 6, № 4, грудень 1974, с.268

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

Безсумнівно, що грааль ефективності призводить до зловживань. Програмісти витрачають величезну кількість часу на роздуми або занепокоєння швидкості некритичних частин своїх програм, і ці спроби ефективності насправді мають сильний негативний вплив при налагодженні та технічному обслуговуванні. Ми повинні забути про невеликі ефективності, скажімо , близько 97% часу: передчасна оптимізація є корінь всіх зол.

Але ми не повинні пропускати наші можливості на критичних 3%. Хороший програміст не буде заспокоєний самовдоволення такими міркуваннями, він буде розумним уважно придивитися до критичного коду; але лише після виявлення цього коду Часто помилково робити апріорні судження про те, які частини програми є дійсно критичними, оскільки універсальним досвідом програмістів, які користуються інструментами вимірювання, було те, що їх інтуїтивні здогади не вдається. (…)


2
@Roger Pate: Я підозрюю, що ти маєш рацію, більшість людей не розуміють, що є ще цитата.
Скотт Дорман

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

@Roger Pate: Зовсім не!
Скотт Дорман

5
+1 Дякую за повну цитату. Ніколи не знаю, що там було більше.
Еван Плейс

2
Чудово, що ви опублікували всю цитату. Дуже багато людей просто знають версію сортування і не мають поняття, що насправді мав на увазі Кнут.
DasIch

80

Налагоджувачі не видаляють помилок. Вони показують їх лише у повільному темпі.

- Невідомо


35
Або в багатьох випадках змушують їх припиняти появу цілком.
Graeme Perrow

12
@Graeme ці випадки називаються Heisenbugs :)
Here Be Wolves

76

Перші 90% коду припадають на перші 90% часу розробки. Решта 10% коду припадає на інші 90% часу розробки.

- Том Каргілл


Хто сказав це спочатку?
Paddyslacker

10
Я думаю, ви побачите, що 90% коду займає 90% часу, а останні 10% коду займають інші 90% часу.
FacticiusVir

2
Том Каргілл з Bell Labs: en.wikipedia.org/wiki/Ninety-ninety_rule
Білл Карвін

1
Я знаю це: 20% товаришів п'ють 80% пива.
Zzz

1
Особисто я б сказав, що перші 90% коду припадають на перші 90% часу розробки. Тоді решта 90% коду припадає на інші 90% часу розробки.
Kaz Dragon

70

Якби у Java було справжнє збирання сміття, більшість програм видаляли б себе при виконанні.
  - Роберт Сьюелл


22
смішно, щойно змусило мене думати про php.
WalterJ89

2
@ WalterJ89: Не хвилюйся! До повернення PHP 5.3, PHP не буде відкинуто.
zneak

Мені подобається цей!
MDV2000

@ WalterJ89 Ну, я не бачу причин виділяти Java на відміну від COBOL, C ++, VB чи інших.
Марк C

69

Інформатика - це не більше комп’ютерів, а астрономія - телескопи

- Едсгер Дійкстра


4
Так, але це стосується програмування , а не інформатики. [хитра усмішка]
Марк C

Програмування - це просто застосування знань, зібраних за допомогою інформатики. Для програмування вам не потрібен комп’ютер, принаймні не такий, як більшість знайомих.
DasIch

Я завжди відчував, що найприємніше у програмуванні - це те, що я не можу відокремити його від комп'ютерів.
LoveMeSomeCode

57

Якщо налагодження - це процес видалення програмних помилок, програмування повинно бути процесом їх введення.
  - Edsger Dijkstra


24
Ось чому я люблю ставитись до своєї роботи як до налагодження .
декабрь

9
А технічне обслуговування як перезавантаження ?
Джо D

1
@JoeD Ні, "помилки".
Марк C

56

Існує лише два види мов: та, на яку скаржаться люди, і та, яку ніхто не використовує

- Bjarne Stroustrup


15
поганий привід для викрадання C ++
липня

3
C # - очевидний зустрічний приклад.
Тімві

7
І VB потрапляє в обидві категорії.
Швидкий Джо Сміт

48

Найкраще в булеві, навіть якщо ви помиляєтесь, вас відключає лише трохи. - (Анонім)


Найгірше те, що ти не можеш більше помилитися?
POSIX_ME_HARDER

46

Два рази мене запитували: "Моліться, містере Беббідж, якщо ви вкладете в машину неправильні цифри, чи вийдуть правильні відповіді?" В одному випадку член Верхньої, а в іншому член нижньої палати поставив це питання. Я не в змозі правильно сприймати те, що плутають ідеї, які могли б спровокувати таке питання.
  - Чарльз Беббідж

Можливо, перший задокументований випадок програміста, який стикався з дурними питаннями користувачів.


5
Звучить як ідея футболки! "Помилка користувача: вирівнювання речей з 1832 року". (Дата?)
Марк C

42

Я завжди хотів, щоб мій комп'ютер був таким же простим у використанні, як і мій телефон; моє бажання здійснилося, бо я вже не можу зрозуміти, як користуватися своїм телефоном

- Bjarne Stroustrup



39

Підтримка Unicode не є "особливістю". Очікувана поведінка.

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


3
Тепер ви просто повинні сперечатися про те, який унікод
Мартін Бекетт

@Martin: Не дуже, тому що конверсія між різними видами не втрачає.
Біллі ONeal

Аарх болю! Чому я маю сперечатися з клієнтом, що ні, ми не можемо "просто" переключити всю свою інфраструктуру на латинську-1, щоб зробити це нескінченно зручнішим для нього? "Зрештою, тут ніхто не використовує цих дивних спеціальних символів; не може бути так важко, правда?"
Пісквор

39

Коментувати свій код - це як очищення вашої ванної кімнати - ви ніколи не хочете цього робити, але це дійсно створює приємніший досвід для вас та ваших гостей.

- Райан Кемпбелл


1
Мех ... Більшість коментарів, з якими я стикався в своєму житті, написані під припущенням, що коментарі можуть компенсувати погано написаний код ..
riwalk

Ви можете почистити ванну, але якщо в душі є лише холодна вода, а в раковині немає мила, це стане неприємним досвідом. Напишіть код, який легко читається, а не писати величезні коментарі для пояснення речей.
Кейо

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

2
Я також люблю писати коментарі, але ви не хочете бачити мою ванну кімнату.
Тімві

Одного разу я був в умивальній кімнаті, де були справді давно зауважені коментарі про те, як і чому слід підтримувати умивальну кімнату в чистоті. Це було не чисто.
Рей Міясака



34

Il semble que la perfection soit відвідують non quand il n'y плюс rien à ajouter, mais quand il n'y плюс rien à retrancher.
  - Антуан де Сент-Екзюпері, французький письменник (1900-1944), Terre des Hommes (1939)

(Здавалося б, досконалість досягається не тоді, коли не залишається нічого додати, а коли не залишається нічого, щоб забрати.)


І це також стосується музики
Heinz Z.


2
@David Kendal: Приємно! Аналогічно Генрі Девід Торо сказав: "Спростіть, спростіть". Що завжди змушує мене думати: "Спростіть".
Білл Карвін


31

Як сформулював Ерік С. Реймонд :

Закон Лінуса

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

Або, менш формально,

Враховуючи достатню кількість очних яблук, всі клопи дрібні.


трохи схоже на правило мавпи / машинки для мене ...
Шон Патрік Флойд

Чому любителі Linux, схоже, витрачають більше часу на повторення цієї цитати, ніж на виправлення помилок?
Тімві

Або гасло Етвуда для StackOverflow: "Ніхто з нас не такий німий, як усі ми". Дивіться codinghorror.com/blog/2008/09/…
Еван Плейс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.