Inżynieria oprogramowania

29
The Inglish parser (dla The Hobbit 1982)

Był zafascynowany czytaniem o tekstowej grze przygodowej Hobbit, która zawierała niezwykle solidny parser o nazwie „Inglish”: ... Inglish pozwolił pisać zaawansowane zdania, takie jak: „zapytaj Gandalfa o ciekawą mapę, a następnie weź miecz i zabij nim trolla”. Analizator składni był złożony i...

29
Dlaczego większość „dobrze znanych” języków imperatywnych / OO umożliwia niekontrolowany dostęp do typów, które mogą reprezentować wartość „nic”?

Czytałem o (nie) wygodzie posiadania nullzamiast (na przykład) Maybe. Po przeczytaniu tego artykułu , jestem przekonany, że byłoby znacznie lepiej do użytkuMaybe (lub coś podobnego). Jestem jednak zaskoczony, widząc, że wszystkie „dobrze znane” imperatywne lub obiektowe języki programowania nadal...

29
Przewodnik po stylach dla C ++ [zamknięty]

Obecnie używam Przewodnika po stylu Google C ++ w kodzie C ++ i byłem z tego bardzo zadowolony. Ostatnio powiedziano mi, że ten przewodnik jest bardzo zły: jest używany wewnętrznie przez Google (wiedziałem o tym), jest nieaktualny i promuje niektóre bardzo złe praktyki. Chcę więc użyć innego stylu...

29
Dlaczego linker uniksowy nazywa się „ld”

Próbowałem przeszukać sieć i nie mogłem znaleźć odpowiedzi. Może to mieć coś wspólnego z „ładowaniem”, ale to nie ma dla mnie większego sensu. Oczywiście „ln” zostało już zabrane, ale skąd się bierze to

29
Jak separacja kodu i danych stała się praktyką?

Przeczytaj uważnie pytanie: pyta, jak , a nie dlaczego . Ostatnio natknąłem się na tę odpowiedź , która sugeruje użycie bazy danych do przechowywania niezmiennych danych: Wygląda na to, że wiele magicznych liczb, które opisujesz - szczególnie jeśli są zależne od części - to tak naprawdę dane, a...

29
Czy kod tymczasowy powinien podlegać kontroli wersji i jak?

Oto kilka przykładów kodu tymczasowego / lokalnego. Jest potrzebny do pracy z bazą kodu, ale bycie częścią tego byłoby szkodliwe: Pliki projektu Ścieżki mogą wymagać edycji w celu odzwierciedlenia układu na bieżącym komputerze. Makefile. Na przykład optymalizacja może wymagać wyłączenia podczas...

29
Dobry ogólny system typów

Powszechnie przyjmuje się, że niektóre rodzaje Java zawiodły w ważnych sprawach. Połączenie symboli wieloznacznych i granic spowodowało powstanie poważnie nieczytelnego kodu. Jednak gdy patrzę na inne języki, naprawdę nie mogę znaleźć ogólnego systemu typów, z którego programiści są zadowoleni....

29
Czy istnieje jakiś wzorzec algorytmu chroniący jakąkolwiek treść w sieci, aby upewnić się, że jestem pierwszym, który ją stworzył?

Kilka lat temu był ten haker (nie pamiętam, kim był), który w pełni ujawnił lukę w danym systemie, ale aby się upewnić, że nikt nie bierze za to uznania, stworzył jakiś klucz PGP. W tym momencie zrozumiałem, że stworzył klucz, aby upewnić się, że to on go odkrył, ale nie ujawnił, kim naprawdę był,...

29
Jaki jest kompromis dla wnioskowania o typie?

Wygląda na to, że wszystkie nowe języki programowania lub przynajmniej te, które stały się popularne, korzystają z wnioskowania o typach. Nawet Javascript dostał typy i wnioskowanie o typach przez różne implementacje (Acscript, maszynopis itp.). Wygląda mi to świetnie, ale zastanawiam się, czy są...