To taka Syberia, podczas 2. wojny swiatowej.
Wersja do druku
u mnie w pracy jak ktoś wspominał o tej firmie to od razu same hejty dookoła leciały ze wszystkich stron. Jednak ja na twoim miejscu bym się nawet nie zastanawiał i brał w ciemno a potem próbował się zatrudnić na etat jak będziesz miał taką propozycję. Bo możliwość zdobycia doświadczenia i stażu pracy jest bezcenna
Wlasciciel firmy mial kiedys powiedziec taką piekna sentencje swiadczaca o jego podejsciu:
"kazdego wykwalifikowanego pracownika da sie zastapic skonczona liczba studentow."
Jakis czas pozniej bylo glosno o nim bo narzekal na programistow jacy to oni sa rozpieszczeni i zadaja caly czas coraz lepszych warunkow. Bo myslal ze jedyne czym moze zatrzymac dobrych pracownikow to piniondz i sluzbowy samochod. A z relacji chodzilo o podejscie do profesjonalistow, byle szybciej, zapierdalaj, najlepiej po godzinach.
Kilka lat pozniej mowil ze wykwalifikowani pracownicy sa bardzo duzo warci, i jest gotow placic kazde pieniadze. Moze sie nawrocil, a moze tylko tak powiedzial do PR.
Info gdzies tam kiedys przeczytane, niepotwierdzone.
Anyway, w necie zobaczysz duzo smieci starych, ktore dzisiaj moga nie miec odzwierciedlenia, bo moglo sie podejscie zmienic.
Mam kumpla w pracy ( >6 lat expa już) który chyba na 3 roku się załapał i półtora roku tam siedział. Mówił że było chujowo, ale stablinie. Podstaw się nauczył, ale mówił że zależy od projektu. Czyli jak w każdej firmie. Ja bym raczej nie poszedł ze względu na opinie, ale jak dostałeś się na staż to nie masz nic do stracenia, spróbować warto. Przynajmniej własne zdanie sobie wyrobisz.
@Wielkie Zło ; @Alex Fortune ;
Generalnie rozumiem dlaczego, ale co z przypadkami, gdy klasa ma robic za cos w rodzaju narzedziowki? Aktualny moj projekt to edytor baz danych (MySQL) i te klasy statyczne maja obslugiwac roznego rodzaju zapytania jak przykladowo edycja rekordow, tworzenie nowych tabel itd. Wydaje mi sie, ze tworzenie obiektu dla takich rzeczy jest po prostu zbedne.
nie, nie jest
klasy sa od tego by enkapsulować odpowiedzialności. Jak najbardziej tworzenie instancji do czegoś takiego jest zasadne.
Tego typu klasy też są chujowe, nic nie mówi o jej odpowiedzialności. Najczęściej ludzie pchają tam to, czego nie umieli sensownie podzielić.
@Alex Fortune ;
Podeślesz jakieś swoje repo projektu? Chętnie bym przejrzał jak robisz aplikacje :P
W takim razie jak poprawnie wypadaloby to podzielic na klasy? Bo zgaduje, ze reprezentowanie osobno bazy, tabeli, rekordu, uzytkownika itd. jest duzym marnotrawstwem i tez nie widzi mi sie specjalnie przetrzymywac czegos, co juz jest po raz drugi, szczegolnie gdyby pracowac np. na tysiacach rekordow.
A co ze wbudowanymi klasami statycznymi (np. Path <System.IO>)? Tez samo zlo? Jak pisalem, rozumiem dlaczego (cos innego anizeli sam obiekt zmienia stan obiektu), ale tutaj praktycznie chcemy tylko operowac na czyms.
Takie klasy sprawiaja, ze kod jest dobrze zroganizowany - kazdy wie, gdzie czego szukac a to usprawnia kodowanie i wspolprace z innymi devami.
Dobre pratyki sa po to, aby usprawniac prace i do mnie np. grupowanie string helperow w StringUtils/StringHelpers przemawia jak najbardziej.
nie
Dobre praktyki są po to, aby kod, który rozwjiasz miał pewne cechy - był elastyczny, łatwo modyfikowalny, podatny na zmiany a jednocześnie niepodatny na mnóstwo ewentualnych błędów.
Dobre praktyki w ŻADNYM razie nie powinny słuzyć temu, aby programista czuł się "komfortowo", z prostej przyczyny - bardzo często ludzie czują się komfortowo z niepoprawnymi rozwiązaniami, brną w nie a potem ich kod wygląda jak wygląda, bo zamiast podjąć pracę nad sobą, to woleli napisać to ,,na swój sposób" i potem jest dramat.
a po co mu te cechy?
po to aby zwiekszyc efektywnosc pracy i komfort pracy i zrealizowac zadanie
gromadzenie helperow w jednym miejscu jest jak najbardziej intuicyjne, zwieksza komfort i pomaga zrealizowac zadanie
co do reszty mozemy miec rozne opinie i to jest spoko, ale to juz jest totalny rozpierdol xD
po to sa wszystkie konwencje i standardy, aby wprowadzenie nowego deva bylo mozliwie proste, szybkie i intuicyne
EDIT: wyjasnilismy sb co nieco na PW :)
A co jest jeszcze helperem, a co już nie jest? Z doświadczenia wiem, że wprowadzając taki "pattern" większość♥kodu później ląduje jako swoisty "helper" (vide static class i helpers.py) i tworzy się niesamowity burdel w kodzie. Klasy statyczne SĄ beznadziejne, i zawsze nimi będą.
Co do wbudowanych klas statycznych w .NET Framework to jedynym rozsądnym rozwiązaniem jakie występuje to owrapowanie tych protez w normalne klasy, które można zmockować na potrzeby testów. Nawet są biblioteki, które to już wrapują za nas.
Jeżeli chcemy zastosować jakiś pattern, to od tego jest kontener IoC, który za nas stworzy singleton czy cokolwiek tam potrzebujemy.
Baza danych to normalny element działający na stanie (połączeniu, lub transakcje), dlatego nie widzę argumentacji za brakiem stanu.