Przejdź do głównej zawartości

Posty

Wyświetlanie postów z kwiecień, 2017

Testowanie w stylu "chłop żywemu nie przepuści"

Z przyjemnością przeczytałem ostatni wpis DHH , dowodzący, że w zasadzie nadal używa on TDD(*). Cieszę się, że doszedł wniosku, że TDD, nie jest w rzeczywistości martwy . Ten wpis jest prostą odpowiedzią po to, żeby nie zgodzić się w kilku kwestiach. Ale muszę to powiedzieć: bardziej zgadzam się, niż nie zgadzam. DHH przedstawia siedem punktów. Powtórzyłem je poniżej razem z moimi komentarzami. A ponieważ DHH nie uzasadnia swoich opinii, więc ja nie będę uzasadniał moich. Poniższy tekst jest luźnym tłumaczeniem wpisu bloga Roberta Cecila "Wujka Boba" Martina ze strony : http://blog.cleancoder.com/uncle-bob/2017/03/06/TestingLikeTheTSA.html Proszę o komentarze, jeżeli ta luźność jest zbyt daleko posunięta. 1. Nie celuj w 100% pokrycia kodu testami. Nie zgadzam się. Celuj najwyżej jak się da. Traktuj 100% jak asymptotyczny  cel. Żadna inna liczba nie jest bardziej rozsądnym celem. Nie ma dobrego powodu, żeby przestać podbijać procent pokrycia wyżej. 2.Stosu...

Dla programistów leniuszków. Travis CI.

Próbowałem dodać sobie do konta Githubowego automatyczne buildy przez serwis  Travis CI. Niestety mimo, że builduje mi się lokalnie przez polecenie  rake , to zdalnie lecą błędy: /home/travis/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- test/unit/testsuite (LoadError) from /home/travis/.rvm/rubies/ruby-1.9.3-p551/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:54:in `require' from ./test/all_tests.rb:1:in `<main>' rake aborted! Command failed with status (1): [/home/travis/.rvm/rubies/ruby-1.9.3-p551/b...] /home/travis/build/coola/xp-simulator/Rakefile:4:in `block in <top (required)>' /home/travis/.rvm/gems/ruby-1.9.3-p551/bin/ruby_executable_hooks:15:in `eval' /home/travis/.rvm/gems/ruby-1.9.3-p551/bin/ruby_executable_hooks:15:in `<main>' Tasks: TOP => default => test (See full trace by running task with --trace) The com...

Dla programistów leniuszków. Javascript

W czasie poświątecznego tygodnia, z racji braku poniedziałku, postanowiłem przetłumaczyć z Wujka Boba coś krótkiego. Ale jak sprawdzić, który wpis w blogu jest najkrótszy? Spróbuję to sobie zautomatyzować. Odpalam przeglądarkę Chrome. Wchodzę na dowolny wpis w blogu : Po lewej stronie mam menu z linkami do artykułów: Odpalam sobie konsolę developerską przez klawisz F12 Klikam zakładkę "Console" Skorzystam z bardzo szybkiego i popularnego frameworku Vanilla JS http://vanilla-js.com/ :) Dumnie wyprodukowane przy pomocy: Żeby wrzucić wszystkie linki do tablicy: allLinks = document .getElementsByTagName( 'a' ); Żeby wyświetlić wszystkie linki z tej tablicy: for (i = 0 ; i < allLinks.length; i ++ ) { console.log (allLinks[i].href); } Żeby otworzyć jakąś stronę w tle muszę: Stworzyć obiekt AJAX: var r = new XMLHttpRequest(); Skonfigurować go: r.open( "GET" , allLinks[ 3 ], true ); Zdefiniować f...

Kolorowanie Ruby w Vim

Hej, jakby ktoś był zainteresowany tym, jak włączyć kolorowanie kodu w vim to tak: :syntax on Autoformatowanie wcięć kodu w Ruby wymaga większego zachodu. najpierw trzeba upewnić się, że mamy wtyczkę vim-ruby załadowaną w vim: Polecenie: :scriptnames Wyświetla coś takiego: 1: /home/coola/.vimrc 2: /usr/share/vim-7.3/share/vim/vim73/syntax/syntax.vim 3: /usr/share/vim-7.3/share/vim/vim73/syntax/synload.vim 4: /usr/share/vim-7.3/share/vim/vim73/syntax/syncolor....

Zasada Kolejności Przekształceń

Ten wpis proponuje raczej radykalne przesłanki. Sugeruje, że Refaktoringi mają odpowiedniki nazywane Przekształceniami . Refaktoringi są prostymi operacjami, które zmieniają strukturę kodu bez zmiany jego zachowania. Przekształcenia są prostymi operacjami, które zmieniają zachowanie kodu. Przekształcenia mogą być użyte jako jedyny sposób spełniania aktualnie nieprzechodzącego testu w cyklu red/green/refactor . Przekształcenia mają priorytet, preferowaną kolejność, która zapobiega blokadom lub długim przerwom w pracy w cyklu red/green/refactor . "Gdy testy stają się bardziej konkretne, kod staje się bardziej ogólny." Ostatnio ta mantra nabrała dla mnie nowego znaczenia. Poniższy tekst jest luźnym tłumaczeniem wpisu bloga Roberta Cecila "Wujka Boba" Martina ze strony : https://8thlight.com/blog/uncle-bob/2013/05/27/TheTransformationPriorityPremise.html Proszę o komentarze, jeżeli ta luźność jest zbyt daleko posunięta. Wynalazłem tę zasadę, aby uchron...