Strona domowa GDR!a Tor Hidden Service

V 3.8



Zabawa w pisanie pod Mozillę

(30. 08. 2013)

Rozwijam powoli Paranoię, udało mi się uzyskać full review w Mozilli i teraz rozszerzenie da się zainstalować bez ostrzeżeń (addons.mozilla.org). Chciałem podzielić się wrażeniami.

Rozszerzenia do Thunderbirda pisze się w Javacripcie, który nie należy do moich ulubionych technologii, jest pełen niespodzianek i ma dziwny zasięg zmiennych. Z tego właśnie powodu chciałem uprościć rozszerzenie tak bardzo, jak to tylko możliwe - napisałem je jako zbiór funkcji z prefixem w nazwie. Udało się je opublikować w takiej formie jako wersję 0.1, ale nie otrzymałem "Full Review" za zaśmiecanie globalnej przestrzeni nazw. Nie jestem pewien jakie są szanse na konflikt z drugim rozszerzeniem który będzie używał prefixu "paranoia" przed każdą funkcją, ale styl kodowania to styl kodowania - trzeba się dostosować. Przeczytałem więc zalecenia i zrobiłem refactoring.

Udało mi się przy tym wprowadzić mnóstwo błędów i zyskać dwie złe oceny na addons.mozilla.org. Wszystko sprowadzało się do tego, że używałem swobodnie Array.forEach do iteracji po tablicach, która to funkcja w jakiś sposób używa zmiennej this. Zmienna this wskazywała jednak teraz na obiekt w którym zamknąłem wszystkie funkcje, więc iteracja magicznie zatrzymywała się bez błędu po jednej iteracji. Za takie właśnie problemy kocham JS, chociaż zdaję sobię sprawę że wynikają bardziej z mojego niedouczenia niż samego języka. W niby krótkim kawałku kodu udaje mi się do dziś znajdować różne problemy spowodowane przez zamiane funkcji w metody obiektu.

Jeśli chodzi o dokumentację do pisania rozszerzeń, jest szczątkowa. Mozilla aktywnie usuwa wszystko co związane z Thunderbirdem - strony do których linki wkleiłem w czerwcu w komentarzach przy idiomatycznych fragmentach kodu już częściowo nie istnieją. Dokumentacja interfejsów również jest szczątkowa, o ich jakości nie wspominając. Wydawałoby się, że w kliencie poczty operowanie na ciele wiadomości bądź jej nagłowkach powinno być banalną i dobrze udokumentowaną operacją. Nic bardziej mylnego - łatwo dostępny jest jedynie bardzo okrojony nagłówek zawierający From, To, Date i niewiele więcej. Chcąc uzyskać dostęp do pełnych nagłówków, trzeba było kierować się wątpliwej jakości kodem znalezionym we wpisie z roku 2005 na blogu o nazwie "Thunderbird Docs". Kod okazuje się działać wybiórczo na różnych wersjach Thunderbirda i nie ma porządnego rozwiązania tego problemu, które mogłem znaleźć w publicznie dostępnym kodzie.

Z fajnych rzeczy, plik XPI można sobie zwalidować u Mozilli w walidatorze. Wydaje się być całkiem sprytnym narzędziem, wyłapującym wiele potencjalnych błędów, chociaż nie zawsze dobrze zaimplementowanym. Po automatycznej walidacji czeka się w kolejce na zaaprobowanie przez człowieka - przy pierwszym Full Review trwało to kilka tygodni, kolejka rozszerzeń miała długość prawie 200 sztuk czekających przede mną. Kolejne full reviewy zazwyczaj przechodziły mi tego samego dnia.

Z zabawek, dostępne są fajne statystyki dla developerów, chyba fajniejsze nawet niż te w Android Markecie. Jest liczba użytkowników i ściągnięć dziennie, wersje Thunderbirda wraz z ich procentowym wykorzystaniem, języki, platformy, i różne inne ciekawostki. Wszystko jest do ściągnięcia w CSV i JSON.

Znalazłem jescze ciekawe rozszerzenie umożliwiające uruchamianie całkiem eleganckich unit testów. Nazywa się UxU Test Runner i w tak nieprzyjaznym dla mnie środowisku jak nieobliczalny (albo niedouczony :) JS i nieudokumentowany TB wydaje się niezbędnym narzędziem, jeśli chcę uniknąć podobnych niespodzianek jak przy refactoringu.

(komentarzy: 2, ostatni: 31. 08. 2013 - 10:58:01 - GDR!) Skomentuj
Wyswietlen: 2989, komentarzy: 2 Feed z komentarzami


Imię: Kamil (30. 08. 2013 - 19:54:52)

Treść:
W ogole nie rozumiem tego parcia, zeby apki pisac w Html/Css/Js. Gdzie sie czlowiek nie obroci: Modern UI , Chrome Web Store, Firefox OS itd.
Z drugiej strony co innego wybrac? C/C++ odpada, java jest problematyczna, z powszechnie uzywanych rzeczy zostaje Python i Ruby. Ruby poza Railsami na szeroka skale sie raczej nie wychyla, ale Python nie bylby taka zla alternatywa zamiast wciskanego wszedzie JS.



Imię: GDR! (31. 08. 2013 - 10:58:00)

Treść:
Fajnych technologii nie brakuje. Java jest jaka jest, ale pisanie pod Androida wspominam zdecydowanie milej niz ta zgadywanke tutaj.

Problem jest taki, ze ludzie przestali ogarniac obsluge komputera poza przegladarka, nowe pokolenie programistow (generalizujac) sie dostosowalo, wiec wybranie technologii webowej pozwala producentom poszerzyc grono potencjalnych developerow.

W Thunderbirdzie akurat ciezko sie dziwic, jest zbudowany na technologii Firefoxa, a w Firefoxie - wprowadzanie innego jezyka skryptowego niz JS byloby bez sensu, skoro juz jest jeden interpreter.

Sblam! Antyspam
URL encoded in QR Code Statystyki:

Email
Comments