Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [BLOG] Moj blog na temat front end developmentu do oceny
Forum PHP.pl > Inne > Oceny
dufia
Hej!

moj blog [zmoderowane]

Jakis czas temu rozpoaczalem nauke web developmentu, wtedy postanowilem, ze zaloze sobie bloga i bede tam wrzucal jakies ciekawe linki, czasami sam cos naskrobie. Ostatnio zrobilem spory update i pomyslalem, ze wrzuce gdzies link zeby to komus pokazac smile.gif

Blog na wordpressie, jest po angielsku. Jest tez responsive wiec jak macie smartfony albo tablety to mozecie powiedziec jak sie sprawuje smile.gif

Licze na jakies ciekawe opinie, ciagle sie ucze i wielu podstaw jeszcze nie opanowalem smile.gif
lukasz1985
Za dużo linków, za mało własnej treści, brak jasnej struktury informacji. Jak dla mnie wygląda to jak jakiś śmietnik, do którego wrzucane są jakieś tam wypociny, nawet tagi w nagłówku są chaotycznie rozmieszczone. Co do formy powiem tak: widzę standardowe bazgroły na tego typu blogach, ktore zaciemniają czytelność. Generalnie też nie lubię jednej rzeczy - że od nagłówka z tagami do pierwszego wpisu dzieli mnie jakieś 200 - 300 px obrazka z jakimś miastem i znakiem z lewej strony.

Podoba mi się natomiast to, że istnieje wyraźny podział między pudełkami w których znajdują się wpisy.

I jeszcze jedno a propos samego JS - nie ma co zachwalać tego języka. Jego wieloparadygmatowość kończy się tam gdzie programista chce przesłać do funkcji referencję metody przypisanej do kontekstu danej klasy. Jest to po prostu niemożliwe używając prototypu.
PrinceOfPersia
Cytat(lukasz1985 @ 1.12.2013, 12:30:49 ) *
I jeszcze jedno a propos samego JS - nie ma co zachwalać tego języka. Jego wieloparadygmatowość kończy się tam gdzie programista chce przesłać do funkcji referencję metody przypisanej do kontekstu danej klasy. Jest to po prostu niemożliwe używając prototypu.

Tzn. Czego sie nie da dokładnie? Możesz zarzucić jakimś przykładem kodu/pseudokodu?
lukasz1985
[JAVASCRIPT] pobierz, plaintext
  1. /*
  2.   * Problem polega na tym, że nie można do funkcji wysłać referencji metody dziedziczonej obiektu bez uprzedniego wiązania
  3.   * jej w jakiś sposób z bieżącym kontekstem lub kontekstem prototypu bieżącego obiektu.
  4.   * Jedynym rozwiązaniem jest utworzenie nowej funkcji ze związanym kontekstem
  5.   * i przypisanie jej do pola bieżącego obiektu - wykonane w punkcie (1) co wiąże się
  6.   * z marnowaniem pamięci, lub użycie prototypu bieżącego obiektu i przypisanie metody ze związanym
  7.   * kontekstem do właściwego pola (2), co nie jest rozwiązaniem prawidłowym ze względu na złe umieszczenie
  8.   * metody w łańcuchu dziedziczenia.
  9.   * Jest to poważny problem ponieważ przez to niemożliwe jest pełne programowanie
  10.   * wieloparadygmatowe JS (funkcyjne i obiektowe).
  11.   * Na marginesie: nawet w C++, który nie jest uznawany za język z programowaniem funkcyjnym
  12.   * jest to możliwe.
  13.   */
  14.  
  15.  
  16. function wykonajInna(funkcja) {
  17. funkcja();
  18. }
  19.  
  20. // Zwierze
  21. function Zwierze() {
  22. this.iloscDzieci = 0;
  23. }
  24. Zwierze.prototype = new Object();
  25.  
  26.  
  27. Zwierze.prototype.rozmnoz = function() {
  28. console.log("Rozmnazanie");
  29. this.iloscDzieci += 1;
  30. }
  31.  
  32. // Kurczak
  33. function Kurczak() {
  34. this.jajka = 5;
  35. }
  36. Kurczak.prototype = new Zwierze();
  37.  
  38.  
  39.  
  40.  
  41. var kurczak = new Kurczak();
  42.  
  43. function wykonajTest() {
  44.  
  45. console.log("---------------------------------------------")
  46. console.log("wykonajInna(kurczak.glos)")
  47.  
  48. console.log("kurczak ma: " + kurczak.iloscDzieci + " dzieci");
  49. wykonajInna(kurczak.rozmnoz);
  50. console.log("kurczak ma: " + kurczak.iloscDzieci + " dzieci");
  51.  
  52. console.log("---------------------------------------------")
  53. console.log("kurczak.rozmnoz()")
  54. console.log("kurczak ma: " + kurczak.iloscDzieci + " dzieci");
  55. kurczak.rozmnoz();
  56. console.log("kurczak ma: " + kurczak.iloscDzieci + " dzieci");
  57. }
  58.  
  59.  
  60.  
  61. // Klient
  62.  
  63.  
  64. // Pierwsze wykonanie testu, bez przypisywania metody do kontekstu bieżącego obiektu
  65. console.log("Test pierwszy - bez zmiany kontekstu ===========================");
  66.  
  67. wykonajTest();
  68.  
  69.  
  70.  
  71. // Przypisanie metody do kontekstu obiektu i wykonanie testu - wynik prawidłowy ale
  72. // kurczak i każdy obiekt, typu Kurczak muszą mieć przypisaną właściwość - funkcję do
  73. // kontekstu, co wiąże sie z marnotrastwem pamięci.
  74. console.log("Test - funkcja związana z kontekstem ==============================");
  75.  
  76. var kurczakRozmnoz = kurczak.rozmnoz; // Zapisanie zmiennej na czas testu, żeby przywrócić później
  77. kurczak.rozmnoz = kurczak.rozmnoz.bind(kurczak); // (1) trzeba powtorzyć dla każdego kurczaka
  78. wykonajTest();
  79. kurczak.rozmnoz = kurczakRozmnoz;
  80.  
  81.  
  82. // Alternatywnie można użyć kontekstu bieżącego prototypu. Ale znów nie jest to idealne.
  83. console.log("Test pierwszy - kontekst prototypu ===========================");
  84. Kurczak.prototype.rozmnoz = Zwierze.prototype.rozmnoz.bind(Kurczak.prototype); // (2) rozmnoz w prototypie Kurczaka zamiast Zwierzęcia.
  85. wykonajTest()
[JAVASCRIPT] pobierz, plaintext


Poza tym, chyba każdy widzi jak niepotrzebnie zawiły jest ten język.
com
Przepraszam bardzo ale ostatnio próbowałeś mi powiedzieć że komputery maja przecież takie parametry że co to dla nich za różnica, poza tym nawet w językach wysokiego poziomu w konstruktorze inicjalizujesz wszytko wiec o czym ty mówisz?
PrinceOfPersia
wymyślasz problemy na siłę. Co za problem, zamiast bawić się w bindowanie, podawać kontekst wywołania explicite?

Kod
function wykonajInna(funkcja, kontekst) {
                funkcja.call(kontekst);
}
...
wykonajInna(kurczak.rozmnoz, kurczak);

albo skorzystać z jakiejś biblioteki (UnderscoreJS ma funkcję bindAll, która binduje z automatu metody do obiektu, ponadto ma wiele innych metod, które ułatwiają pracę z funkcjami. Ponadto są też takie biblioteki jak when.js czy sinon itp. A jeśli nie - można napisać od zera te kilka prostych high order functions, które będą nam akurat potrzebne...).

nospor
Ale co tu mamy oceniac? To ze potrafisz postawic bloga na wordpress po czym wrzucac do niego cudze linki? Super smile.gif Z reklamą przyjdz jak zrobisz cos sam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.