Co powinien wiedzieć każdy programista, niezależnie od zastosowanego języka (języków) programowania, systemu operacyjnego lub środowiska, dla którego opracowuje. Niektóre tło: Chcę zostać najlepszym programistą. W ramach tego procesu staram się zrozumieć to, czego nie wiem i bardzo by mi to przyniosło korzyść. Chociaż istnieje mnóstwo list w stylu „n rzeczy, …
Mój szef utrzymuje wspomnieć nonszalancko, że złe programiści używać breaki continuew pętli. Używam ich cały czas, ponieważ mają sens; pozwól, że pokażę ci inspirację: function verify(object) { if (object->value < 0) return false; if (object->value > object->max_value) return false; if (object->name == "") return false; ... } Chodzi o to, …
Stało się to wielką frustracją z bazą kodu, nad którą obecnie pracuję; wiele z naszych zmiennych jest krótkich i nieopisowych. Jestem jedynym programistą, który pozostał w projekcie i nie ma dokumentacji dotyczącej tego, co większość z nich robi, więc muszę poświęcić dodatkowy czas na śledzenie tego, co reprezentują. Na przykład …
Czytałem więc pytanie o zmuszeniu modułu śmieciowego C # do uruchomienia tam, gdzie prawie każda odpowiedź jest taka sama: możesz to zrobić, ale nie powinieneś - z wyjątkiem bardzo rzadkich przypadków . Niestety nikt nie wyjaśnia, jakie są takie przypadki. Czy możesz mi powiedzieć w jakim scenariuszu wymuszenie zbierania śmieci …
Od jakiegoś czasu zastanawiam się nad tym problemem i ciągle znajduję zastrzeżenia i sprzeczności, więc mam nadzieję, że ktoś może wyciągnąć wnioski na następujące tematy: Preferuj wyjątki od kodów błędów O ile mi wiadomo, od czterech lat pracy w branży, czytania książek i blogów itp. Najlepszą praktyką postępowania w przypadku …
Mamy wiele języków programowania. Każdy język jest analizowany i sprawdzany pod względem składni przed przetłumaczeniem na kod, dzięki czemu budowane jest abstrakcyjne drzewo składni (AST). Mamy to abstrakcyjne drzewo składniowe, dlaczego nie przechowujemy tego drzewa składniowego zamiast kodu źródłowego (lub obok kodu źródłowego)? Używając AST zamiast kodu źródłowego. Każdy programista …
Ciekawe, jakie pokusy w programowaniu okazały się naprawdę szkodliwe dla twoich projektów? Na przykład, kiedy naprawdę czujesz potrzebę zrobienia czegoś i wierzysz, że przyniesie to korzyść projektowi, albo po prostu oszukasz się, że tak jest, i po tygodniu zdajesz sobie sprawę, że nie rozwiązałeś żadnych prawdziwych problemów, ale stworzyłeś nowe …
Podczas programowania jednowątkowego programowania asynchronicznego znane mi są dwie główne techniki. Najczęstszym z nich jest użycie wywołań zwrotnych. Oznacza to przekazanie do funkcji, która działa asynchronicznie jako funkcja zwrotna jako parametr. Po zakończeniu operacji asynchronicznej wywołanie zwrotne zostanie wywołane. Niektóre typowe jQuerykody zaprojektowane w ten sposób: $.get('userDetails', {'name': 'joe'}, function(data) …
Coś, o czym wiem od jakiegoś czasu, ale nigdy nie brałem pod uwagę, że w większości języków można nadać priorytet operatorom w instrukcji if na podstawie ich kolejności. Często używam tego jako sposobu zapobiegania wyjątkom o zerowym odwołaniu, np .: if (smartphone != null && smartphone.GetSignal() > 50) { // …
W ramach wywiadu: jaki jest najlepszy sposób na wiarygodną identyfikację, gdy ktoś jest doskonałym programistą . Rozumiem przez to, że jest jednym z tych, którzy są 10-15 razy wydajniejsi / szybsi / lepsi niż jego rówieśnicy w kierunku dolnego końca spektrum. Wielu z nas słyszało o problemie z FizzBuzz jako …
Po przejrzeniu kilku odpowiedzi na temat przepełnienia stosu jest jasne, że niektóre natywnie skompilowane języki mają funkcję usuwania śmieci . Ale nie jest dla mnie jasne, jak dokładnie by to działało. Rozumiem, jak wyrzucanie elementów bezużytecznych może działać z interpretowanym językiem. Śmieciarka po prostu działałaby obok interpretera i usuwała nieużywane …
Ciągle słyszę o wczesnym i późnym wiązaniu, ale nie rozumiem, czym one są. Znalazłem następujące wyjaśnienie, którego nie rozumiem: Wczesne wiązanie odnosi się do przypisywania wartości do zmiennych w czasie projektowania, natomiast późne wiązanie odnosi się do przypisywania wartości do zmiennych w czasie wykonywania. Czy ktoś mógłby zdefiniować dwa rodzaje …
Znasz to uczucie, kiedy po prostu trzeba pokazać, że nowy trik ze Expressions lub generalizować trzy różne procedury? Nie musi to być w skali Astronauta architektury i faktycznie może być pomocne, ale nie mogę nie zauważyć, że ktoś inny zaimplementowałby tę samą klasę lub pakiet w bardziej przejrzysty, prosty (a …
Ilekroć potrzebuję podziału, na przykład sprawdzania warunku, chciałbym zmienić wyrażenie dzielenia na mnożenie, na przykład: Orginalna wersja: if(newValue / oldValue >= SOME_CONSTANT) Nowa wersja: if(newValue >= oldValue * SOME_CONSTANT) Ponieważ myślę, że można tego uniknąć: Dzielenie przez zero Przepełnienie, gdy oldValuejest bardzo małe Czy to prawda? Czy istnieje problem z …
Nasz kod jest zły. Nie zawsze było to uważane za złe, ale jest złe i idzie tylko w dół. Zacząłem świeżo po studiach mniej niż rok temu, a wiele rzeczy w naszym kodzie łamie mi głowę nie do uwierzenia. Na początku pomyślałem, że jako nowy facet powinienem trzymać gębę na …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.