Month: March 2016

Niuanse JavaScript (zaliczone problemy)

Posted on Updated on

Na bazie doświadczeń z Agnularem 1.x

Wszystkie url kierujące do przeglądarki (np WebApi, linki) powinny się rozpoczynać od slasha (‘/’)

Markup który się wygeneruje w danej kolumnie przy korzystaniu z DataTables:

"render": function (data) {
    return '<a href="/items/' + data + '">' + data + '</a>';
}

Jeśli zapomnimy o slashu (href=”items/’ …) a jesteśmy na stronie localhost:8080/users to jedne przegląrki wygenerują adres localhost:8080/items/4 a inne (IE – może tylko w niektórych wersjach) wygenerują adres localhost:8080/users/items/4.

Podobnie przy odpytywaniu api:

P
$http.get('/api/items').success( // ...

Różne

Posted on

Przykład złego komentarza:

// Deep copy
var settingsClone = jQuery.extend(true, {}, settings);

Fajnie że jest opisane że ta konstrukcja robi kopię właściwość po właściwości, lepiej by jednak było zawrzeć to w funkcji i odpowiednio nazwać:

function CreateDeepCopy(obj) {
    return jQuery.extend(true, {}, obj);
}

Jedyne czego jeszcze tutaj brakuje (ale to już bardzo się czepiam) to opis, że ten sposób skopiuje też funkcje, a nie tylko właściwości, bo akurat to było dalej istotne.

Extension z Visual Studio z których korzystam

Posted on Updated on

  1. Resharper
  2. VsVim
  3. RelativeLineNumbers

Właściwie to mało, ale to wszytko czego potrzubuję. Pewnie czasami jeszcze coś o czym aktualnie nie pamiętam (nie mam zainstalowane na maszynie z której piszę).
Chociaż R# is VsVim to takie kobyły, że już więcej nic nie trzeba 🙂

Dodatki do przeglądarek z jakich korzystam

Posted on Updated on

Korzystam głównie z Opery (bardziej do przeglądania internetu) oraz Chrome (bardziej do debugowania)

Dodatki z których korzystam lub korzystałem kiedyś przez dłuższy czas:
– vimium
– adblock plus
– I don’t care about cookies
– new tab clock
– postman
– jing
– jak ukrywać Hot Network Qustions na SO: http://meta.stackexchange.com/a/272128/321318

Od kiedy Opera jest tym samym silniku co Chrome to dodatki zrobione pod Chrome działają również pod Operą.

Coś jeszcze wartego polecenia?

Git – czasem dopiero po chwili wiesz jak dobrze nazwać

Posted on Updated on

Tak najpierw nazwałem commity:
Install angular
AngularJS TypeScript typings
Update jQuery definitions for TypeScript

A później samo do mnie doszło że lepszymi nazwami będzie:
Install angular with TypeScript typings (z połączenia dwóch pierwszych)
Update jQuery definitions for TypeScript

Dzięki funkcjonalności rebase interactive możemy pozmieniać nazwy (posklejać commity), aby było to bardziej sensowne. Opisuję jak to wyklikać z GUI.

Gdzie na pewno ‘null’ to za mało

Posted on Updated on

Nie lubię nulli. Uważam że są nadużywane. A dodatkowo powinno się korzystać z rozszerzeń typu Option<T>, zeby explicite zaznaczyć brak wartości. Dzisiaj trafiłem na przykład który jest dosyć bliski każdemu i może produkować niejednoznaczne wyniki.

When null is not enough: an option type for C#

Na przykład metoda FirstOrDefault. Mając pustą listę stringów, FirstOrDefault wskazuje brak pierwszej wartości poprzez zwrócenie nulla. Ale mając listę rozpoczynająca się nullowym stringiem także zwróci null. Rozróżnienie tych dwóch przypadków jest często istotne, ale FirstOrDefault nie zrobi tego za ciebie (pomimo posiadania koniecznej logiki). Może zrefaktorować FirstOrDefault, aby rozróżniała między tymi dwoma przypadkami…, ale co powinna zwrócić? Odpowiedzią jest: typ opcji.

Najnowszy VsVim – wolne visualstudiogallery

Posted on Updated on

Gdy chcemy ściągnąć VsVim (super dodatek do Visual Studio – jak dla mnie 😉 to zazwyczaj wylądujemy na stronie oficjalnych dodatków do Visual Studio (Visual Studio Gallery). Problem z tym jest taki, że ta wersja jest rzadko aktualizowana (ostatnio lipiec – 8 miesięcy temu). A development idzie do przodu 🙂

Właściwym miejscem do ściągania jest więc Open VSIX Gallery . Tam lądują paczki po każdym commitcie do mastera na https://github.com/jaredpar/VsVim. Dzięki serwisowi AppVeyor.
Działa to w skrócie:

  • pobierz najnowsze źródła
  • puść skrypty Continuous Integration (budowanie, testowanie …)
  • deploy jeśli wszystko poszło dobrze (tutaj właśnie na Open VSIX Gallery)

Polecam zainteresować się tego typu rozwiązaniami dla projektów Pet projects (za darmo dla Open Source).