Więcej kodu = więcej błędów

10

Po studiach pamiętam profesora nauczającego klasę jednego z praw informatyki. Powiedział coś w stylu „Więcej kodu oznacza więcej błędów” i nadał mu nazwę (The Law Of Whatchamacallit) i przypisał ją komuś.

Czy ktoś wie, skąd pochodzi to „prawo”, kto je wypowiedział lub co to jest pierwotne słowo?

Jeff
źródło
6
Przypomina mi: „Projektant wie, że osiągnął doskonałość nie wtedy, gdy nie ma już nic do dodania, ale kiedy nie ma już nic do zabrania”. -Antoine de Saint-Exupery
Kirk Woll
4
Przypomina mi: „Nie ma kodu szybciej niż brak kodu” (Przewodnik programisty dotyczący projektowania).
Luke Woodward
1
Skoro już o tym wspomniałeś i nikt nie wie, jak się nazywa, nazwijmy to „prawem Jeffa”.
FrustratedWithFormsDesigner
@Kirk, podobny cytat z Arthura Williama Radforda (z malarstwa): „Połowa sztuki wie, kiedy przestać”. Bardzo odpowiednie również w tym kontekście.
Berin Loritsch
Lubię „Prawo Jeffa”. Dalej jest umowa na książkę. Kto pomoże mi znaleźć wydawcę? :)
Jeff

Odpowiedzi:

7

Ponadto znaczna liczba problemów spowodowanych przez błędne oprogramowanie, które występują, ponieważ dostawcy ciągle dodają do swoich programów coraz więcej funkcji, co nieuchronnie oznacza więcej kodu, a tym samym więcej błędów.

Autor: Andrew Tannenbaum

Dr Belizariusz
źródło
2
Linki do wyszukiwań w Google nie są szczególnie przydatne. Czy możesz wyodrębnić odpowiednie informacje i opublikować je w swojej odpowiedzi?
ChrisF
1
@ChrisF to pierwszy wynik w wyszukiwaniu książek. Jest to materiał chroniony prawem autorskim i wolałbym nie cytować tekstu. Dzięki za komentarz.
Dr Belisarius
2
Myślę, że dozwolony użytek obejmowałby wycenę.
Orbling
1
Wygląda na to, że nie chcesz wprowadzać zmian, więc zrobiłem to za Ciebie.
Josh K
to brzmi dobrze. dzięki! próbowałem to sobie przypomnieć od lat.
Jeff
4

Książka Boehm, Software Engineering Economics ma ją jako podstawową formułę.

Wysiłek = k * S ^ a

Gdzie S to źródłowe linie kodu.

A funkcja mocy a wynosiła> = 1,0.

S.Lott
źródło
4

@belisarius: Dobrze zauważony z Tannenbaum.

@Jeff: Jeśli Tannenbaum nie zadzwoni, być może twój profesor wspomniał o Occamie i prawie ekonomii / sukcesu. (Zobacz Razor Razor .)

@ S.Lott: Dijkstra dość mocno argumentował przeciwko używaniu linii kodu jako miary użytecznej pracy. Zasadniczo powiedział, że maksymalizuje to niewłaściwą zmienną. Oczywiście Boehm próbuje modelować wysiłek, a wiersze kodu powinny zawierać wiersze kodu usunięte.

Edytować:

Pomyślałem, że dodam, że Dijkstra powiedział również, że „prostota jest warunkiem niezawodności”.

Kevin A. Naudé
źródło
7
Użyj „dodaj komentarz” w odpowiedziach, aby dodać komentarze zamiast pisać je w odpowiedzi.
1
@ Thorbjørn Ravn Andersen - niestety jako użytkownik <50 rep nie może dodawać komentarzy.
ChrisF
1
@ Thorbjørn: Potrzebujesz 50 powtórzeń, aby móc dodawać komentarze. @Kevin: Jeśli połączysz swoje konta SO i programiści, otrzymasz 100 powtórzeń, natychmiast pozwalając Ci na pozostawienie komentarzy.
Anon.
1
@Kevin - Programmers 'to nie forum, ale strona z pytaniami i odpowiedziami. Zachęcamy do opublikowania odpowiedzi zawierającej więcej informacji niż podane w obecnych odpowiedziach, ale nie należy dodawać komentarzy jako odpowiedzi. Jeśli sprawdzisz FAQ , zobaczysz, że potrzebujesz 50 reputacji, aby móc komentować, ale jest to dość łatwe do osiągnięcia.
ChrisF
1
@Anon - potrzebujesz> 200 powtórzeń na co najmniej jednej stronie, aby otrzymać bonus. Niestety Kevin w tej chwili tylko 160 na SO. Możesz jednak ponownie powiązać swoje konta w dowolnym momencie, więc gdy osiągniesz 200 na jednej stronie, będziesz mógł uzyskać bonus od wszystkich.
ChrisF