Jakos kodu w waszych projektach, firmach

0

Pisze ten temat, aby troche ponarzekac, podpytac, rozpoczac dyskusje. Pisze niezalogowany, poniewaz chce pozostac anonimowy, aby nie zostac na tym forum rozpoznany :]

Pracuje w firmie, ktora sprzedaje, calkiem spory system napisany w PHP w polaczeniu z PostgreSQL. Dziala on na naszym serwerze, wiec klient dostaje tylko konto i co miesiac oplaca abonament.

Jezeli chodzi o wyglad tego projektu, to nie bede sie wypowiadal, bo niektorym moze sie podobac - jest to kwestia gustu. Usability lezy:

  • oparty na ramkach wiec URL w pasku adresowym sie nie zmienia
  • ... tym samym F5 nie dziala
  • toporne dzialanie Wstecz/Naprzod w niektorych przegladarkach, bo po nacisnieciu jakiegokolwiek przycisku strona przekierowanie do kolejnej strony jest przesylane POSTem, stad np. FF ciagle pyta o to, czy wyslac naglowki POST
  • nie dziala w menu "Otworz w nowej karcie", bo nie ma "href" tylko "onclick"
  • ... dalej nie bede pisal :P

Zobaczylem kod to sie przerazilem. Zadnego frameworka, pisany strukturalnie, kod PHP pomieszany z HTML, JavaScript, SQL a nawet CSS! Niektore pliki maja ponad 100kB a rekordowy 200kB! I wez tu Panie odnajdz sie w takim kodzie. Oczywiscie bezpieczenstwo lezy - kazdy formularz podatny na XSS, cholera wie jakie jeszcze bledy.

Fakt, ze baza danych spora, duzo insertow. Konwencja (zarowno w kodzie PHP jak i PostgreSQL): jezyk polski pomieszany z angielskim (tak wiec mamy tabele users oraz grupy). Oczywiscie w bazie zadnych triggerow, procedur, czy funkcji... no ale ok.

System pisany strukturalnie, stoi na kilku naprawde poteznych serwerach, a uzytkownikow ma mniej niz 4p ;) Bo oto przyklad jak rozwiazane jest stronnicowanie i sortowanie danych w tabeli: pobierana jest CALA zawartosc tabeli wedlug warunkow WHERE jakie chcemy uzyskac (chociazby miala i 50k rekordow). Nastepnie wszystko przypisywane jest do tabeli PHP, a nastepnie taka tabela jest sortowana wedlug okreslonej kolumny, jakas funkcja sortujaca PHPa. O LIMIT, czy OFFSET w SQL nikt nie slyszal chyba. Wyobrazacie sobie wiec ile RAMu to zzera gdy mamy do czynienia z wieksza iloscia rekordow ;)

Ale dosyc juz marudzenia. Taki system kosztowal firme grupa kase, ok 100k zl. gdzie ja (moim skromnym zdaniem) napisalbym taki system 2x taniej i lepiej. Jednym slowem sprzedaja klientom GOWNO! Ale nikogo to nie obchodzi. Dziala, jest calkiem funkcjonalne (musze przyznac), wiec sie sprzedaje. Jak wolno dziala, to dokladamy nowy serwer i wszystko gra.

Czuje sie jak frajer, dbajac o jakosc swojego kodu, gdy ktos inny sprzedaje gorszy produkt (z punktu widzenia tego, co jest "pod maska") za wieksza kase niz ja. Czy w zwiazku z tym jest sens sie starac? Moze lepiej klepac swoje, nie zwracajac uwagi na jakosc. Na zasadzie "byleby dzialalo", 8h i ide do domu. Bo chyba z tego zalozenia wychodzili programisci tworzacy wspomniany przeze mnie projekt...

0

To ja krótko: normalka.

0

Jeżeli myślisz o swoim rozwoju jako programista to spadaj stamtąd jak najszybciej. Oprogramowania to taka dziedzina, gdzie marny kod jak najbardziej ma swoje miejsce na rynku. Marne firemki, marni programiści, marny kod ale sprzedaje się za dziesiątki tysięcy złotych dlatego, że nie ma konkurencji.

0

Firma b. dobrze prosperuje, rozwija sie w dynamicznym tempie. Oglaszala sie nawet tutaj calkiem niedawno, ze poszukuja nowych pracownikow. Stad musze pozostac anonimowy :]

Konkurencja jest na tym rynku. Ale z punktu widzenia uzytkowego, zwyklego Kowalskiego, ktorego nie intersuje wydajnosc aplikacji, projekt moze wydawac sie bardzo dobry :) Bo ma sporo opcji, sporo mozliwosci, wiec firma na rynku jest najwieksza i zarabia sporo. Jestem w stanie to zrozumiec. Prezesa, czy klientow nie obchodzi co dzieje sie "na zapleczu", jak to funkcjonuje. Wazne, ze dziala. I sie sprzedaje. Inaczej oczywiscie wyglada to z mojego punktu widzenia ;) Wlosy z glowy powyrywac idzie :P

0

To nieprawda, że jest konkurencja. Konkurencja ma miejsce wtedy gdy podmioty rynkowe współzawodniczą ze sobą i przedstawiają korzystniejsze od innych podmiotów oferty rynkowe, pod względem ceny, jakości, kosztów utrzymania i innych. Teraz firmy informatyczne szczególnie w Polsce egzystują obok siebie, dzielą się tortem, a jakakolwiek walka o klienta jeżeli nawet ma miejsce jest bardzo mało agresywna.

0

"PHP" i "jakość" to dla mnie antagonizmy. Nawet Java jest paskudna, jeśli chodzi o jakieś stare wersje, sprzed 1.5. Polecam zająć się językiem trudniejszym do nauczenia się niż PHP. Jeśli sam język będzie bardziej wymagający to kod powinien prezentować wyższy poziom.

0

hmm, ogolnie zgodze sie w z tym co napisane wyzej ze w wiekszosci firm jest to normalka, ale naszczescie nie we wszystkich.
rownierz ci radze zebys spadal z tamtad a nie sie uwstecznial.
ze swojego doswiadczenia moge powiedziec ze cos sie w klimacie QA zmienia, mialem okazje popracowac przy podobnym produkcie w sensie c**** jakosci, i okazalo sie ze po jakims czasie firma zaczela skrecac na wlasciwa droge i dbac zarowno o kod jak i o usability, po prostu w pewnym momencie taki produkt ma nad soba szklany sufit, bo nie mozna go rozwijac czy audytow nie przechodzi itp
mialem takze okazje pracowac w firmie gdzie jakosc oprogramowania i kodu miala znaczenie pierwszorzedne i dzisiaj bardzo sobie cenie ten czas gdy przy tym siedzialem
aktualnie w zespole w ktorym pracuje jest osoba odpowiedzialna za design i usablity, jest osobna osoba od testow i QA, no i kod pisany jako tako z wykorzystaniem TDD.

0
Wibowit napisał(a)

"PHP" i "jakość" to dla mnie antagonizmy. Nawet Java jest paskudna, jeśli chodzi o jakieś stare wersje, sprzed 1.5. Polecam zająć się językiem trudniejszym do nauczenia się niż PHP. Jeśli sam język będzie bardziej wymagający to kod powinien prezentować wyższy poziom.

Przepraszam, co ma język do jakości kodu pisanego w nim? Widziałeś kiedyś app podzielony na warstwy, z template systemem, oparty na modelach i wydzielonej warstwie do składania zapytań SQL? To jest dopiero machina.

0

Nie ma co się tym sugerować, jasne, wszędzie zdarza się kiepski kod.
Ale czasem się okazuje, że w tej części kod jest błąd... i wtedy się żałuje, że się byle jak napisało :/
Dlatego nie zależnie od tego jak reszta kodu wygląda, swoje części zawsze staram się pisać czytelnie, sensownie i tak, by łatwo było dodać nową funkcjonalność - ponieważ jest duża szansa, że wkrótce będę musiała coś poprawić lub dodać.

A jak widzę straszny kod, to często bez pytania od razu go przerabiam, bo mnie serducho boli jak widzę takie rzeczy... Niestety piszę w VBA i widzę, że programiści rozwijający projekt przede mną absolutnie nie przejmowali się takimi pierdołami jak deklaracja zmiennych, czy pilnowanie tego czy zmienna jest przekazywana ByRef czy ByVal :/

0

Oczywiście, że w PHP da się pisać porządny kod (choć będzie to wymagać sporo samodyscypliny), ale sam język jest źle zaprojektowany, a jego pozorna łatwość przyciąga lamusów. Pozorna, bo można w jednym pliku klepnąć PHP, HTML, CSS itd od razu cieszyć się wynikiem, nie przejmując się w ogóle bezpieczeństwem czy idiotoodpornością.

Dobra nie chcę ciągnąć flejma o PHP, piszcie dalej o porażkach w firmie :)

U mnie w firmie piszę w Javie, ale system jest stary pisany w czasach Javy < 1.5, bez genericsów, enumów, hibernate, itp za to z takimi kwiatkami jak np: przysłanianie stałych w interfejsach (!!!). Moje programowanie ogranicza się do dorabiania kolejnych szczebelków w drabince ifów, ewentualnie inne zabawy z copy&paste, ale cóż, tak mam narzucone. No i oficjalnie jestem na okresie próbnym chyba. Na stażu wakacyjnym była lepsza zabawa bo miałem mały projekt do zrobienia w grupie, który cały wymyśliłem praktycznie sam.

Ja chcę do Google!!!!! :)

0

No niestety, z wersji na wersję starają się to poprawiać, ale jednak PHP cechuje się tym że można coś zrobić uberprofesjonalnie, a można na odczep. Zresztą, w każdym języku da się coś odjebać i stwierdzić

No co? Przecież działa.

Ja pamiętam jak przyszło mi edytować kod który był w miarę dobrze napisany, za to przepuszczony przez obfuskowarkę używającą zmiennych funkcji (masakra) i operacji na stringach w formie tablicy. Wszystko było do tego opatrzone komentarzem:
// Kiedys ci sie uda
Bodajże wtedy dwa razy zmieniłem klawiaturę w ciągu miesiąca. Zawiść programistów odchodzących z projektu bywa nieprzewidywalna.

0

Ja chcę do Google!!!!! :)

Zaostrzę Twój apetyt :P
http://gazetapraca.pl/gazetapraca/1,91734,7271320,W_Google_od_kuchni.html

0

co wy tak wszyscy za tym google? corpo jak kazda inna :|

0

cepa:
Na pewno nie. W Google ciągle się coś wymyśla, w polskich korporacjach zwykle ciągnie się jakieś kobyły, dokleja albo tworzy coś metodą kopipejst, itp itd Chodzi mi przede wszystkim o możliwość wykazania się, wymyślania nowych algorytmów, zastosowywania tego co się nauczyłem na UJ, jakaś wyższa matematyka, inne podejścia do programowania, itp itd

0

Google zreszta slynie z tego ze najlepiej dba o pracownika.

0

Myślę, że większość polskich firm IT oferuje dobry socjał i warunki, może daleko im do Google, ale nie ma powodu żeby narzekać.

0

No, w Google np. wymyślili Wave. ;P

0

sory ale dla mnie google jest przereklamowane, takim nerdowem smierdzi :S

0

Google? To ta firma co zatrudnia doktorów do pisania CSS? ;)

Swoją drogą jest pewna korelacja między językami programowania a jakością kodu.
Albo inaczej - między językami programowania a odsetkiem lamusów, którzy w nich piszą, a z kolei odsetek lamusów będzie przekładał się na jakość kodu w firmie, bo firmy są słabe w selekcji dobrych ludzi (i to nawet te najlepsze firmy czasem wtapiają).
Wg moich bardzo subiektywnych obserwacji, w PHP jest większy odsetek lamusów niż w Javie / C++, a w Javie czy C++ większy niż np. w Scali czy Rubym ;)
Im łatwiej się czegoś nauczyć, albo im coś jest bardziej nauczane w szkołach / na studiach jako obowiązkowe (np. Pascal), tym więcej przypadkowych ludzi bez predyspozycji będzie w tym kodować.

0
Wibowit napisał(a)

cepa:
Na pewno nie. W Google ciągle się coś wymyśla, w polskich korporacjach zwykle ciągnie się jakieś kobyły, dokleja albo tworzy coś metodą kopipejst, itp itd Chodzi mi przede wszystkim o możliwość wykazania się, wymyślania nowych algorytmów, zastosowywania tego co się nauczyłem na UJ, jakaś wyższa matematyka, inne podejścia do programowania, itp itd

byles? widziales?

0

@up Piotrek chwali sobie tą praktykę (do tego stopnia że w tym roku też tam był z tego co wiem), więc chyba aż tak źle tam nie mają ;)

0

Mam dwóch kolegów w Google w Zurichu i nie narzekają. Choć najlepsze czasy już chyba minęły, bo kryzys Googla nie oszczędził.
Swoją drogą jakby ktoś chciał iść pracować do Google'a, to trzeba mieć polecenie od kogoś pracującego wewn.

0

ja po prostu nie moge juz sluchac jaki to google jest fajny i zajebisty, dla mnie to tylko przegladarka, analityka i mail + reklamy, wiecej uslug googla mi do szczesia nie jest potrzebnych, wrecz nie lubie tej firmy za to ze jest wszedzie i kazdy o niej mowi :]
poza tym pracownik gdzie by nie trafil i tak bedzie murzynem, conajwyzej jego box bedzie ladniejszy, socjal bedzie lepszy i troche lepsza kasa, ale heloouu! nad programistami jest szklany sufit, w hierarchii jestesmy na samym dole
co do samego "prestizu"... jest kilka firm na swiecie w ktorych chcialbym kiedys popracowac, ktore imho robia znacznie bardziej zaawansowane rzeczy niz google, ot chociazby: intel, amd, nvidia, 3ds, adobe, autodesk, itd

0

conajwyzej jego box bedzie ladniejszy, socjal bedzie lepszy i troche lepsza kasa,

Diabel siedzi w szczegolach :P

wrecz nie lubie tej firmy za to ze jest wszedzie i kazdy o niej mowi :]

A co byscie powiedzieli jakby google wprowadzilo na rynek swoj system operacyjny :)?

adobe

Tak to ja ide :P

0
polaczek17 napisał(a)

conajwyzej jego box bedzie ladniejszy, socjal bedzie lepszy i troche lepsza kasa,

Diabel siedzi w szczegolach :P

wrecz nie lubie tej firmy za to ze jest wszedzie i kazdy o niej mowi :]

A co byscie powiedzieli jakby google wprowadzilo na rynek swoj system operacyjny :)?

adobe

Tak to ja ide :P

polaczek, popracujesz to pogadamy, na mnie nie robi juz wrazenia to ze mam fajne biurko i wygodny fotel, to jest moje narzedzie pracy i nic wiecej, social? opieka medyczna, benefity, multisport, sory to jest w kazdej wiekszej firmie, przeloty do siedziby firmy? nic specjalnego, kumpel jutro leci do San Jose (dolina krzemowa), moze jakby google oferowalo fajne laski chodzace w bikini po biurze to moze wtedy bym sie garnal do pracy u nich, ale tak to niczego specjalnego nie oferuja, co do samego zatrudniania to na liknedin wkolko jest rekrutacja wiec kto chce niech sie zglasza, ot firma jak kazda inna

system operacyjny? no i? microsoft ma swoj system i jakos tez sie nie pale zeby tam robic, bo nawet windowsa nie uzywam to poco, nie moja dzialka

a i jeszcze jedno, mozecie zapomniec o zarobkach rodem z USA, outsourcing w innych krajach na tym wlasnie polega ze sie szuka tanszych pracownikow :)

0

moze jakby google oferowalo fajne laski chodzace w bikini po biurze

Cepa, no co Ty, chory, czy co? :D

0

Ja troszke zażartowałem z tym wszystkim, napisalem tak z przymruzeniem oka.
chociaz:

  • poczytaj ten link co dalem. Opis pracy w google jest imponujacy i tu naprawde nie ma tylko szczegolow ale pracownik doslownie pracuje kiedy chce. Ma basen ma restauracje i wszystko za darmo. Nikt nie wymaga siedzenia "od - do", grunt by zrobic wszystko.

Z tymze ja pisze to wszystko z przymruzeniem oka. Nigdy nie pracowalem w firmie. Moze za rok badz dwa przyjdzie na mnie czas. Dlatego ja tylko gdybam i pisze z tego co czytalem oraz moje wnioski. Wiadomo ze jesli ktos juz ma wieksze doswiadczenie to powie cos wiecej na ten temat ;)

Z tym systemem operacyjnym chodzilo mi ze google zaczyna atakowac rozne dziedziny. I bym sie nie zdziwil gdyby sie pojawil system operacyjny od nich :P Nie wiem jednak czy by im sie to oplacilo. ( raczej nie ).

A co do zarobkow to programisci i tak sporo zarabiaja. Sporo w sumie zalezy dla kogo ale ludzie ciulaja koniec z koncem za o wiele mniejsze stawki. Ale tu znow mowie tylko patrzac na statystyki :D

0

no przeczytalem i... ehh no typowa amerykanska corpo :P

sproboje cie moze sprowadzic na ziemie:

  • polskie prawo uniemozliwia dawanie lunchu pracownikom za darmo, nie mozna brac tego w koszty, a z podatkiem ceny lunchu rosna niemilosiernie i sie po prostu nie oplaca (wiem bo przez miesiac firma mnie karmila, az sie US przyjebal)
  • elastyczne godziny pracy to norma
  • w stanach maja wiekszy luz prawny, np: trzymanie barku z alkocholem w swoim biurku nikogo nie dziwi
  • jak wspomnialem wyzej benefity i social to standard w wiekszosci duzych firm it
  • zarobki w stanach sa takie a nie inne ze wzgledu na koszty zycia i pracy, przykladowo w kaliforni (silicon valey) domy sa nawet 5x drozsze niz NJ czy NY
  • polacy sa wlasciwie wykluczeni z tamtego rynku pracy dlatego ze jedyna opcja dla nas to praca tymczasowa na wizie H2B, uniemozliwia ci ona zmiane pracy i pozwala na prace u konkretnego pracodawcy tylko przez jakis czas
  • firma majac do wyboru zatrudnianie ciebie w polsce czy w usa moze zalatwic ci wize pracownicza ale mozesz pracowac u nich na takich samych warunkach jak w PL wiec de fakto jestes do tylu gdyz zycie u nas jest zdecydowanie tansze
  • w wielu firmach roznego rodzaju odstresowujace gazdzety to normalka (u mnie jest zajebista sofka)

dla zainteresowanych praca w google, ofert masa, pierwsza z nich:

Job Description
This position is based in Krakow, Poland.

The area: Software Engineering

Google's Software Engineers develop the next-generation technologies for which we've become world-renowned. In addition to revolutionizing search technology, we use our world-class programming skills to innovate in a number of other areas as well. Our projects include working on advanced information-retrieval algorithms, massive scalability and storage solutions, and large-scale applications that enrich the user experience. We also work extensively on networking systems, advertising systems and complex transaction systems in consumer applications.

The role: Software Engineer

Software Engineers have a passion for solving complex and interesting problems. Google is much more than search, and our mission has much greater scope. To handle information at the scale of the web requires ideas from just about every area of computer science, including information retrieval, artificial intelligence, natural language processing, distributed computing, large-scale system design, networking, security, data compression, user interface design, etc.
Engineers work on many projects that carry varying responsibilities. Below are some examples of the diverse projects with which you might be involved.

Responsibilities:

• Write server-side code for web-based applications, create robust high-volume production applications, and develop prototypes quickly. You should also have a strong understanding of, and practical experience with, Java web application development.
• Build our platforms, systems and networking infrastructure using your strong background in distributed systems, OS/kernel, network system design, and large scale storage systems.
• Build internal systems used by thousands of Googlers around the world with your domain expertise in HR, Staffing, Legal, and all other corporate functions.
• Specialist domains: UI development with AJAX and similar technologies, client application development for Windows/Mac (Chrome, Toolbar, etc.), embedded systems and mobile apps (Android), developer tools (IDEs, large-scale build systems, compilers), internationalization.

Requirements:

• BS, MS, or PhD in Computer Science or related technical discipline (or equivalent).
• A solid foundation in computer science, with strong competencies in data structures, algorithms, and software design.
• Extensive programming experience in C/C++ and/or Java (strong OO skills preferred).
• Several years of large systems software design and development experience, with extensive knowledge of Unix/Linux.
• Coding skills in Python or Javascript/AJAX, database design and SQL, and/or knowledge of TCP/IP and network programming are a plus.
• Fluency of the English language.

podejrzewam ze ostatni punkt odsiewa najwiecej kandydatow ;)

0
polaczek17 napisał(a)

Z tym systemem operacyjnym chodzilo mi ze google zaczyna atakowac rozne dziedziny. I bym sie nie zdziwil gdyby sie pojawil system operacyjny od nich :P Nie wiem jednak czy by im sie to oplacilo. ( raczej nie ).

Heloł, o Chrome OS nie słyszałeś?

0

No to teraz rozumiem. Więc w Polsce nie jest tak zle wychodzi na to :P
dodam od siebie do tego:

  • w stanach maja wiekszy luz prawny, np: trzymanie barku z alkocholem w swoim biurku nikogo nie dziwi

Ze ten luz prawny dotyczy tez pracodawcow i tam mozna byc wywalonym z miejsca bez bawienia sie w papierki. "Od dzis Panu dziekujemy" i na drugi dzien jest sie bezrobotnym. Niby wlasnie takie jest tam prawo :P

Heloł, o Chrome OS nie słyszałeś?

Cholera wlasnie cos mi chodzilo po glowie ale chrome mi sie bardziej kojarzy z przegladarka :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1