DevEnv
2019-06-04 09:37

Organizacja błędów aplikacji w środowisku produkcyjnym

Jako osoby odpowiedzialne za tworzenie oprogramowania powinniśmy dążyć do tego aby w naszym kodzie występowała jak najmniejsza ilość defektów. Czas i koszt ich naprawy rośnie wraz z tym jak późno je wykrywamy oraz jak wielkie zawiłości posiadamy w kodzie. Zdarza się, że są błędy których się nie poprawia, ponieważ koszt ich naprawy wielokrotnie przekracza wartość dodaną do aplikacji – uznając, że da się z tym żyć.

#devenv #technicalblog #blog

DevEnv
2019-02-15 13:28

Dev:Cast – Unit Tests – Dobre praktyki
Testy jednostkowe to temat, który nie raz poruszaliśmy podczas naszego podcastu. Wspominaliśmy o ich wartości, głównych zasadach ale także zachwalaliśmy technikę Test-driven development. Z naszych rozmów jednoznacznie wynika, że praca bez Unit Tests jest dla nas ciężka i tak na prawdę zwiększa ilość pracy…

Tym razem skupiliśmy się na definicji kilku dobrych praktyk wspomagających tworzenie testów jednostkowych. Takich testów, które dobrze weryfikują implementacje, zapewniają jakość oraz łatwo jest je utrzymywać.

#devenv #devcast #programowanie #dobrepraktyki #unittests #technicalblog

Aventus

@danek: pierwsze słyszę o takiej idei testów jednostkowych. No ale nie będę się czepiał szczegółów, domyślam się o co Ci chodzi. Natomiast nie wierzę w to że przy bardziej rozbudowanej logice wszystkie testy jednostkowe wykonują się w 1-2 sekundy. Faktycznie, testy które opisałem są wolniejsze, ale nieznacznie. To nie są pełnoprawne testy integracyjne a kompromis- coś za coś. Ponadto, jestem przekonany że znacznie zaoszczędza się na czasie przy pisaniu nowych testów, ponieważ nie muszę się rozdrabniać dla każdej nowo napisanej "jednostki". Jeśli nowa funkcjonalność jest w ramach już istniejącej, pokrytej testami to w ogóle nie ma potrzeby na pisanie nowych testów.

danek

@Aventus: zależy co dla ciebie jest jednostką. U siebie odpalam cała aplikacje bez I/O podczas testów z zmockowana baza jako hashmape i mam efekt podobny do ciebie tylko szybszy. Odpowiednie formatowanie przez kontrolery itp ogarniam sobie osobnymi 'integracyknymi' testami odpalamymi rzadziej

DevEnv
2019-01-07 10:48

Siema, wracamy z kolejnym postem o #RUST. Tym razem na tapet bierzemy Moving Ownership. Zapraszamy! ;)

#Devenv #technicalblog #blog

Patryk27

Przez jakiś bug nie mogę zmodyfikować mojego postu, a wypadałoby dorzucić inną ważną informację: każda struktura w Ruście ma z góry określony, znany w trakcie kompilacji rozmiar (w odniesieniu do pierwszego cytowanego przeze mnie wyżej fragmentu). Typami odbiegającymi od tego są jedynie traity i slice'y (https://doc.rust-lang.org/nomicon/exotic-sizes.html).

DevEnv

Dzięki @Patryk27.

  • W Rust nie ma słówka kluczowego class, ale jakoś struktura, która implementuje traity lub własne funkcje jest dla mnie klasą. Reprezentuje dane wraz z zachowaniami.
    Trait to jest deklaracja interfejsu podobna do tych z C# lub Javy, ale nie identyczna.

  • Miałem to rozdzielone, bo to o czym wspominasz czyli implementacja trait Copy opisana była poniżej. Podkreśliłem to bardziej.

  • Typy proste to prymitywy. Typy złożone to struktury.

  • Co macie na myśli poprzez wykorzystać dziedziczenie? Zmieniłem by było jasno wypisane, że chodzi o implementacje konkretnego traita a nie o całe zjawisko dziedziczenia.

  • W kolejnych częściach planuje opisać: Borrowing, wpływ mutowalności, slice. Nie chciałem naraz wprowadzać dużej ilości pojęć. Dodałem zdanie zapowiadające by czytelnik wiedział.

  • Rc, Arc, Mutex planuje wprowadzić dopiero w późniejszych częściach, bo to są mechanizmy skierowane na współbieżność.

Dzięki za feedback i pomoc :)

Bulldogjob
2019-01-04 12:55

Dlaczego jednak warto nauczyć się Lispu?

Rafał Kotusiewicz wymienia zalety i zastosowania Lispu i tłumaczy, kiedy język ten może się okazać lepszym wyborem niż Java czy Python

#blog #IT #technicalblog #programowanie #python #clojure

siloam

DSL w Groovym czy Rubym pisze się równie łatwo. I nawet lepiej to wygląda (wcale nie jak hybryda, którą straszą w artykule) bo tam przy jednym argumencie nawiasy są opcjonalne. W Lispie musisz używać dodatkowo nawiasów. Gdy ktoś chce programować funkcyjnie to część osób go odradza także ze względu na dynamiczne typowanie.

Bulldogjob
2018-12-28 12:47

Dlaczego mam płacić za Scrum Mastera

Kiedy do akcji powinien wkroczyć Scrum Master i dlaczego Product Owner nie może go zastąpić 🧐

#blog #IT #technicalblog #programowanie #scrum

szarotka

Niby scrum master OK, ale gdy pojawiają się w teamie problemy to ani scrum master ani kierownik nie pomoże, tylko zamiatanie pod dywan, bo nikt nie chce problemów widzieć, a jak ty widzisz problem, to podejście, że to ty masz problem. Szkoda gadać, można wydać fulll kasy na scrum masterów, konsultacje z agile itp itd a ludzi zostawić samych z ich problemami. Taka patologia, gdzie liczą się pozory a nie realne działania i zdrowy rozsądek.

Leroy

Najlepiej zatrudnić dwóch i patrzeć jak się zabijają próbując pokazać którego scrum jest bardziej scrumowy i który jest bardziej agile