Koziołek
2019-09-13 08:57

Nawiązując do dyskusji Kod źródłowy Springa... #zCy... bardzo fajnie opisał to Bartek Zdanowski na twitterze (pic rel jak ktoś nie chce klikać).

IMO problem leży w sposobie, w jaki wytwarza się kod. Jeżeli przyjmiemy, że mamy Wszechgithubowy Związek Koderów (WZK), który będzie dbał o jakość kodu i karał osoby piszące słaby kod, to trzeba jednocześnie przyjąć dwa dodatkowe założenia:

  1. Wszyscy programiści są utrzymywani przez całą społeczność i spełniane są ich zachcianki (oczywiście w granicach zdrowego rozsądku);
  2. odrzucamy jakiekolwiek struktury zarządcze w społeczności IT.

Niestety to tak nie działa i działać nie może. Co gorsza, po 60 latach istnienia przemysł IT nie wyszedł z metodami zarządzania ponad to, co oferuje zwykły przemysł. Ma to następujące konsekwencje:

  1. Managerowie nie chcą zmian w istniejącym kodzie pomimo jego tragicznej jakości, ponieważ traktują taki kod jako gotowy produkt, które nie podlega zmianom.
  2. Zmiana starego kodu może być przeprowadzona tylko przez jego całkowitą wymianę (drop'n'rewrite) w momencie zmiany technologii.
  3. Zmiana technologii odbywa się w cyklu 7-10-letnim zgodnym z tzw. Cyklem Technologii Rewolucyjnej. Cykl ten opisuje, jak często na rynku pojawiają się rozwiązania, które mają największy wpływ na jego kształt i będą używane przez kolejne dziesięciolecia. W efekcie firma zawsze tworzy w najnowszych technologiach, ale nigdy nie rozwija istniejącego kodu w tych technologiach.
  4. „If it ain't broke, don't fix it” – czyli stara zasada inżynierii „realnej”, która jest inaczej interpretowana przez menadżerów i inżynierów oprogramowania. Ci pierwsi odnoszą ją do wartości biznesowych, gdy ci drudzy do wartości technicznych.

#programowanie #inżynieriaoprogramowania

jarekr000000

@WhiteLightning: oczywiście, że są pewne sytuacje wyjątkowe, jakkolwiek wyjątkowe. Nigdy nie wierz, że projekt będzie tylko na następny miesiąc i idzie do kosza o ile sam nie widzisz, że to faktycznie ma sens i masz dupokrytkę w postaci pisemnej. Wtedy, jak Ci ktoś każe po dwóch miesiącach coś znowu dopisywać to wyciągasz i mówisz - towarzysze skłamaliście : teraz dorabiam testy refaktoruje, a potem dorobię ten ficzur, o który prosicie.
Pracuje 20 lat i już ileś razy byłem w toksycznych projektach (ostatnio wiele lat temu), gdzie management czepiał się o czasy na zadania. Wtedy po prostu mówiem, że jestem wolnym człowiekiem. (To powiedzonko wziąłem od pewnego bardzo dobrego programisty - Piotra, z którym pracowaem w jednej firmie, nie wiem czy to wymyślił, ale jest genialne). (jestem wolnym człowiekiem nie da się dobrze przetłumaczyć na Niemiecki - to jedyny problem).
Rozumiem, że jak ktoś jest juniorem na okresie próbnym to oczywiście tak nie może bezczelnie się zachowywać. Ale od pewnego doświadczenia po prostu jest to potrzebne, co więcej trzeba pomagać juniorom w sytuacjach toksycznych- w jednym projekcie wchodziłem w JIRE i ręcznie zwiekszałem wyceny zadań kolegów mniej bezczelnych - wtedy to ja się musiałem tłumaczyć, a że nieopatrznie zostąłem mianowany jakiś tam unterarchitektem - to okazało się, że mam prawo :-)

jarekr000000

Btw. poza tym, że latam na tony konferencji i troche z tego mi sie liczy na czas pracy to w zasadzie robie niedogodziny :-) i to stale. Nie zbawiam świata, staram się chronić klienta przed konsekwencjami średnich decyzji, zwykle nie jest to problem bo ma troche projektów bagien, gdzie ludzie się boją zaglądać i łatwo pokazać przykład co się stanie jak polecimy po łebkach.

oracledev
2019-09-10 23:22

Zapraszam do nowego kursu optymalizacji zapytań Oracle SQL.
Tym razem o działaniu index skip scan: https://oracledev.pl/sql-index-skip-scan/
#sql #oracle #blog #programowanie #naukaprogramowania

Tomek Pycia

Brakuje mi na twojej stronie informacji o tym, jakie masz doświadczenie i kim jesteś, co by potwierdziło twoją wiedzę. Tak to jest kolejna strona o optymalizacji zapytań w Oracle.

oracledev
2019-09-02 00:14

Nowe wpisy/kursy SQL i bazy Oracle.
Z tematyki optymalizacji zapytań najciekawszy sposób skanowania indexu czyli FAST FULL SCAN: https://oracledev.pl/sql-index-fast-full-scan/
Z tematyki podstaw Oracle i SQL, kurs o rolach i uprawnieniach: https://oracledev.pl/kurs-sql-role-i-uprawnienia/

Stworzyłem listę kursów o których będę w najbliższym czasie pisał: https://oracledev.pl/kurs-oracle-sql/
Jeżeli warto coś dodać to dajcie znać :)

#blog #sql #oracle #programowanie #kurs # it

CppPolska
2019-08-06 08:24

Cześć wszystkim kochającym #programowanie w #jezykc i #cpp :) Dawno nas tutaj nie było, co nie? Ostatnio trochę skupiliśmy się na grze w życie, ale powoli zaczynamy wychodzić z tej jaskini :D

Mamy dziś dla Was nowy wpis od Mariusza Jaskółki, który opowiada o tym, czy język C++ faktycznie jest wolniejszy od C. Spójrzmy na ten nieco clickbaitowy temat z perspektywy eksperckiej.

https://cpp-polska.pl/post/cz[...]-slow-o-zero-cost-abstraction

Język C++, w przeciwieństwie do C jest językiem wieloparadygmatowym. Możemy używać go do programowania proceduralnego, strukturalnego, obiektowego, poniekąd funkcyjnego i prawdopodobnie jeszcze jakiegoś innego. W C jesteśmy ograniczeni do pierwszych dwóch. W świecie programistów można spotkać opinie, że C++ poprzez zwiększenie poziomu abstrakcji utracił na wydajności w stosunku do starego, dobrego i szybkiego C. Zbadajmy więc, czy ta opinia ma odzwierciedlenie w rzeczywistości. Porozmawiajmy jednak najpierw trochę bardziej teoretycznie.

Miłej lektury wszystkim!

JaskMar

@no_solution_found: W C++ to zależy od kompilatora. Clang owszem, kompiluje do LLVM. Go mimo wszystko wydajnością nie zachwyca - są aspekty w których przegrywa z Javą.

vpiotr

Fajny artykuł, nie czytałem dokładnie, ale przykłady w ASM wg mnie bardzo się przydają.

Silv
2019-07-23 18:18

To uczucie, gdy dodajesz instrukcję if w aplikacji, by rozwiązać problem – i pamiętasz, że kiedyś generowało to trzy błędy w trzech różnych plikach, a teraz działa od razu zgodnie z oczekiwaniami.

#wrażenia #programowanie #rozwój #rozwijam-się

WhiteLightning

@Silv: jak jest dobry bug, to te trzy nowe po naprawie dopiero na produkcji wyjda...