Wpis z mikrobloga

#programowanie #programista15k
To #!$%@? uczucie kiedy poprosiłeś szefa o pomoc (w kwestii technicznej, a nie projektu), bo jesteś juniorem od niecalego pół roku, a w sumie niepotrzebnie pytałeś, bo znalazłeś jeszcze lepszy sposób -_-

Czy pytanie o optymalizacje kodu przystoi tylko juniorom, czy regular też sobie może na to pozwolić, tj. bo czegoś nie wie o języku / frameworku?
Głupio się czuje bo jeszcze nie zrobiłem zadania bez takiego zacięcia, ilość pytan spadła do 1/ max 2 ale ciągle to wkurza, że nie potrafię sam..
  • 34
konto usunięte via Wykop Mobilny (Android)
  • 7
@michael93pl: o optymalizację kodu pytają i dyskutują również seniorzy, bo wbrew opiniom pythonowców jest to najważniejsza rzecz w całym programowaniu. Coraz wydajniejsze algorytmy i sposoby napędzają całą informatykę, a temat jest tak skomplikowany, że nikt nie powinien czuć się źle pytając o pomoc.

No chyba że robisz jakieś rozwiązania O(n^n), bo to źle świadczy już od początku ( ͡° ͜ʖ ͡°)
@ThePawel
@Czesiowcy
@lubie-kasztany
Miałem głupia rzecz, wiedziałem, że nie mogę w pętli zrobić 50 query do bazy a tylko jedno większe, którego nie umiałem zrobić. Może to właśnie i głupie ale czekam na to pierwsze w życiu zadanie, gdzie napiszę " zrobione, testy napisane, tester zaakceptował, czas robić review" ^^
@frogi16 tak jak pisałem, akurat właśnie Django, nie chciałem porównywać danych z csv do danych w bazie przy każdej iteracji, a zarazem nie walić wielkiego query ale nie dało się bo finalnie i tak potrzebowałem instancji, żeby na niej metody odpalić. Szefu polecić ES bo mamy zmapowanego z bazą no ale elastic nie zwróci mi instancji, więc i tak to zaoralem
konto usunięte via Wykop Mobilny (Android)
  • 0
@Frogof: to super dyskusja. Tylko tyle masz do powiedzenia? Bo ja znam historię algorytmiki i wiem jak to wyglądało, kiedy nie mieliśmy jeszcze tak rozbudowanych podstaw teoretycznych i mnożenie macierzy było czynnością, której należało unikać, jeżeli tylko była taka możliwość.
@frogi16: Czystość kodu > optymalizacja kodu. Co z tego że będzie optymalny (czyli w przypadku webserwisu zyskasz jakieś 0,3s/rq) jeśli będzie napisany w taki sposób że jego modyfikacja będzie wpędzać devów w depresję a kod będzie nieutrzymywalny?

To nie lata 90', nie musimy już przeliczać każdego kilobajta RAMu i pora iść do przodu.
konto usunięte via Wykop Mobilny (Android)
  • 1
@lubie-kasztany: oczywiście, że musimy.
Podejrzewam, że obaj pomijacie jedną rzecz: wyraźnie zaznaczyłem, że jest to najważniejsza rzecz dla całej dyscypliny nauki, jaką jest informatyka. Nie dla konkretnego programisty czy zespołu.
Wszystkie systemy napisane z użyciem odpowiednich metod zarządzania projektem, wzorców itp., będące przykładem dobrego kodu, nie mogłyby istnieć, gdyby nie skrajna optymalizacja na samym dole, w systemach, na których polegają inne systemy, na których polegają inne systemy, na których dopiero polega
@michael93pl: Tak teraz czytam - u was najpierw tester akceptuje a dopiero potem robicie review? :D
@frogi16: Powiedziałeś, że

jest to najważniejsza rzecz w całym programowaniu


a programowanie to na tyle niejednolita dziedzina, że jednocześnie masz i nie masz racji.

Z jednej strony są te niskopoziomowe systemy, w których liczy się każdy takt procesora - systemy wbudowane, operacyjne, języki programowania same w sobie, jakieś algorytmy data mining - tam jestem
konto usunięte via Wykop Mobilny (Android)
  • 1
@lubie-kasztany: tylko że jego systemy by nie istniały bez tych niskopoziomowych ¯_(ツ)_/¯
Wyobraź sobie, co by się stało, gdybyśmy nagle odkryli algorytm obliczania wyznacznika macierzy o rząd wielkości lepszy niż obecnie stosowane (pomijam fakt, czy jest to w ogóle możliwe, chodzi mi o sam eksperyment myślowy). To nie spowodowałoby tylko przyspieszenia super komputerów, albo wyspecjalizowanych mikroprocesorów.
To, po zaimplementowaniu do najważniejszych bibliotek, spowodowałoby nagłe przyspieszenie działania wszystkiego, od Arduino pilnującego podlewania
@lubie-kasztany: odniose się głównie do pytania - mamy flow taki, że przed review są testy, żeby tester upewnił się, że zadania działa, potem review, a potem finalne testy (w między czasie często biznes to jeszcze sprawdza). Chodzi głównie o to, żeby developerzy nie tracili czas na review nieprzetestowanego kodu. Po review oczywiście i tak to własnie jeszcze sprawdza tester :)