Opublikowano Moje eksperymenty z malinką i termometrami muszą na razie poczekać na lepsze czasy. W między czasie jednak sporo się dzieje dookoła zatem: Zarezerwuj sobie 12 października bo wtedy odbędzie się konferencja dotnetconf. Jak nazwa wskazuje będzie o dotnecie a występować będą : Maciej Aniserowicz, Maciej Grabek, Tomasz Janczuk, Jakub Gutkowski, Mirosław Pragłowski i Łukasz Gąsior czyli obsada bardzo zacna. Tematyka również niczego sobie, zobaczymy jak to wyjdzie bo konferencja odbędzie się pi...
Strona głównaUżytkownik
arek | użytkownik
Potrzebowałem funkcję do konwertowania długości pliku w bajtach na zjadliwą dla użytkownika formę. Zgodnie z tdd najpierw należy napisać test: [Test] [Row(1, "1 B")] [Row(1024, "1 KB")] [Row(2000, "1,95 KB")] [Row(1048576, "1 MB")] [Row(1537500, "1,47 MB")] [Row(5242880, "5 MB")] [Row(1073741824, "1 GB")] public void ToFileSize_Tests(int value, string expected) { var fileSize = value.ToFileSize(); Assert.AreEqual(expected, fileSize); } a potem wygooglować odpow...
Sztuka programowania 4167 dni, 17 godzin, 8 minut temu 104 źrodło rozwiń
Opublikowano Do 22 kwietnia JetBrains oferuje zniżkę na swoje produkty w wersji personal. Więcej informacji tutaj: http://www.jetbrains.com/specials/ Tutaj cenniczek:ReSharper (34% OFF)IntelliJ IDEA (50% OFF)WebStorm (41% OFF)AppCode (40% OFF)PyCharm (40% OFF)PhpStorm (40% OFF)RubyMine (40% OFF)dotTrace Performance (35% OFF)dotCover (40% OFF) To też może Cię zainteresować:JetBrains szalejeWebcast z Johnem SkeetemWarsztat czyli moje narzędzia pracyWarsztat czyli moje narzędzia pracy–te używane spor...
Opublikowano Nie zdążyłem dotrzeć przed oblicze komputera na czas aby obejrzeć JetBrainsowy webinar z Johnem Skeetem Big thanks to @jonskeet for the Webinar (and the private class named var). Thank you to everyone that attending. Recording available soon. — JetBrains ReSharper (@resharper) …no właśnie, zaintrygowało mnie “private class named var” Napisałem taki kawałek kodu: public class VarHacking{ private class var{ public string Message { get; set; } } public v...
Sztuka programowania 4263 dni, 7 godzin, 54 minuty temu 238 źrodło rozwiń
Opublikowano Wiadomość z ostatnie chwili, dosłownie jeszcze gorąca – prosto z Redmond. Właśnie wyszedł Update 2 dla Visual Studio 2012. Zmiany zaszły w 4 głównych obszarach: Agile planing – teraz wszystko musi być agile więc poprawili TFS-a w tym zakresie – co dokładnie to nie sprawdzałem bo nie mam już przyjemności pracy z TFS-em Jakość – czyli zmiany w Test Managerze, code coverage, asp.net manual testing, “significant” polepszenia w zakresie testowania dla SharePointa Windows Store dev – tutaj ...
Kilka tygodni firma Atlassian ogłosiła zamkniętą betę swojego (podobno jednego z najlepszych)klientów git-a Wczoraj wyszedł z wersji beta i jest oficjalnie dostęny. http://www.sourcetreeapp.com/ Od czasów bety używam go do oglądania repozytorium i czasem do commitowania i wygląda, że jest całkiem przyzwoity. Myślę, że warto spróbować. To też może Cię zainteresować:Pobierz Windows 7 beta. Już dostępny do pobrania.Nowy Office 2013 już do pobraniaPolska Kronika Filmowa – Milionowy klient...
Dzisiaj w firmie @blackgilmore trafił na ciekawy błąd, duplikujące się style w css-ie. Mając 3 pliki less:test1.less .test1Function() { .testClass { background-color: #f00; } } test2.less @import-once "test1.less"; .test2Class { top: 1px; .test1Function(); } test3.less @import-once "test1.less"; @import-once "test2.less"; wynik powinien wyglądać tak: .test2Class { top: 1px; } .test2Class .testClass { background-color: #f00; } Jeśli jednak .tes...
Git jest git jak mawia Spartakus Maciej jednak nie każdemu dane jest dostąpić do tego świętego Grala bo sporo firm używa np svn-a. Sam jestem w takiej sytuacji, że wewnątrz firmy obowiązuje jedyny słuszny svn i nikt nie ma zamiaru zmieniać tego dla jednego marudzącego kolesia. W takiej sytuacji trzeba sobie radzić samemu. Git ma wbudowanego klienta svn-a i nic ale to zupełnie nic nie stoi na przeszkodzie, aby korzystać z niego jako klienta svn. Do wykonania git-> svn potrzebujemy instalk...
Opublikowano Z tematu dług technologiczny zrobił się całkiem spory cykl. Mimo, że nie wszystkie aspekty zostały poruszone, to myślę, że poruszone zostały wszystkie najważniejsze jego aspekty zatem nadszedł czas na odpowiedzenie sobie czy da się realizować projekty bez długu. Odpowiedź krótka brzmi NIE. Jeśli w każdym aspekcie będziemy korzystali z wszystkiego NAJ to przy dzisiejszym tempie rozwoju okaże się, że nie robimy nic oprócz zmian wersji narzędzi, bibliotek, framework-ów, wrzucaniu coraz to n...
Jednym z ostatnich rodzajów długów jakie chcę poruszyć to testy. Testy we wszelakiej postaci, od jednostkowych, przez integracyjne, specyfikacji, smoke, white i black box do obrzydliwych ręcznych. Brak testów to najgorsza rzecz jaką możemy zrobić. W każdej normalnej branży (a nie takiej, gdzie większość to pryszczaci kolesie z problemami interpersonalnymi ) czyli takiej o solidnych podstawach ukształtowanych przez lata praktyki, normą są testy. Budowlańcy robią testy wytrzymałości beton...
Sztuka programowania 4317 dni, 20 godzin, 1 minutę temu 158 źrodło rozwiń
Monolity – wielkie projekty składające się z setek klas ściśle powiązanych ze sobą. Czasem to nawet nie muszą być przesadnie wielkie te projekty jednak wystarczy, że klasy są ściśle powiązane ze sobą. Co to znaczy ściśle powiązane ze sobą? Jeśli w jednej klasie użyjemy słowa new, żeby stworzyć obiekt innej klasy to właśnie ściśle powiązaliśmy te dwie klasy. Jedna bez drugiej żyć nie może, nie da się jednej z nich przenieść do innej biblioteki bez odpowiednich referencji. Jeśli chcemy zlec...
Sztuka programowania 4319 dni, 22 godziny, 22 minuty temu 122 źrodło rozwiń
W zeszłym tygodniu internety obiegła wiadomość, jakich mało: Microsoft oficjalnie uznał przewspaniałość Gita! Może jednak przyjdzie kiedyś czas, gdy nie będę musiał się wykłócać ze zwolennikami TfuFSa i tłumaczyć po milion razy jak to narzędzie, a szczególnie jego utrata kontroli nad wersją, jest bardzo, bardzo złe, słabe i szkodliwe?
Refaktoryzacja – ot kolejne popularne słowo…. nie zupełnie. Pisząc software nie zawsze dokładnie wiemy jak on będzie wyglądał i co finalnie będzie robił – tzn. w danej chwili (zdefiniowanym kwancie czasu, żeby brzmieć mądrzej) zawsze wiemy co będzie robił, tylko z dalszej perspektywy mentalnej – tj. po dłuższym okresie może się okazać, że robi coś zupełnie innego niż początkowo zakładaliśmy. Oczywiście nie ma w tym nic złego, przecież wszyscy jesteśmy teraz agile jednak nie wiedząc co fina...
W ostatnim poście marudziłem na management. Zwalanie na management ma tą zaletę, że zwalnia nas programistów z odpowiedzialności. To jest ICH wina, to ONI doprowadzili do takiego a nie innego stanu i tak dalej i tak dalej. Pułapką takiego zachowania jest “wymówka”. Wymówka przenosi naszą odpowiedzialność na kogoś lub coś innego. Wymówka jest świetna bo wybiela nas. Na konferencji 33 degree trafiłem ciasteczko z wróżbą o takiej treści: W życiu ma się albo wymówki albo wyniki Dlatego pora ...
W NuGet fajne jest to, że jeżeli w firmie tworzycie paczki, których nie chcecie upubliczniać to macie taką możliwość. Ja ostatnio przekonałem częściowo firmę by z tego skorzystała, i zamiast mieć referencje po katalogach (co wymaga by każdy miał zgodną strukturę katalogów) lub referencje poprzez duplikowanie projektów, miała własny serwer NuGet do którego będziemy publikować paczki dla naszych lokalnych projektów.
O długu technologicznym ciąg dalszy. Tym razem będzie o managemencie czyli o wszelkich kierownikach, dyrektorach, leadach, dev leadach, pm-ach, project i product managerach i wszystkich innych, którzy mają pozycję decyzyjną. Przez to rozumiem wszystkie te osoby, które między innymi powiedzieć kiedy będzie nowa wersja i co w jej zakres wchodzi. Wydawało Ci się, że to tylko lenistwo programistów wpędza zespoły w długi? Otóż nie. Nie mały wkład w to ma management (zarząd w j. polskim ma troc...
Producenci kontrolek lubią kiedy kupujemy kontrolki bo mają z tego pieniądze, nierzadko duże pieniądze. Jeszcze bardziej cieszą się jak podziedziczymy po ich kontrolkach. Wtedy jesteśmy ich, na zawsze. Jesteśmy jak narkoman w rękach dilera. Dlaczego? Ano dlatego, że jeśli odziedziczymy coś po jakiejś kontrolce lub bibliotece, a jeszcze lepiej jeśli kawałek kodu, który dziedziczy należy do logiki biznesowej lub logiki aplikacji to późniejsza zmiana kontrolki wiąże się z przerobieniem większ...
W poprzednim artykule jako jeden z pierwszych składników długu technologicznego podałem wersję narzędzi. Dzisiaj będzie trochę szerzej o tym. Używanie starych narzędzi ma kilka dosyć poważnch skutków.Odcinanie się od lepszych narzędzi Pierwszy to odcinanie się od nowych zabawek, które pozwoliły by tworzyć lepsze produkty. Korzystając z .net 1.1 nie było wsparcia dla typów generycznych dzięki czemu zamiast stworzyć typ generyczny trzeba było czasem nawet pokopiować trochę kodu. Zamiast sk...
Kilka tygodni temu na devPytaniach pojawiło się pytanie “Jak motywować programistę?“. Wtedy się nie udzieliłem, ale właśnie naszły mnie refleksje poniekąd w tym temacie. Opiszę na swoim przykładzie.
Dzisiaj będzie o długu technologicznym, czyli o sprytnie ukrywającym się koszcie projektu. Koszcie, który z czasem potrafi zabić najlepsze projekty a nawet firmy. „As an evolving program is continually changed, its complexity, reflecting deteriorating structure, increases unless work is done to maintain or reduce it.” Meir „Manny” Lehman 1980 Parafrazując ciągle zmieniający się program zwiększa swoją złożoność o ile nie pochylimy się nad kodem aby ją zmniejszyć. Pisanie programów jest ł...