Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

5 Stron V   1 2 3 > » 

PrinceOfPersia
Napisane: 11.11.2015, 23:01:25





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

http://lmgtfy.com/?q=JavaScript%2C+jquery%...x+how+send+form
  Forum: Przedszkole · Podgląd postu: #1176075 · Odpowiedzi: 5 · Wyświetleń: 533

PrinceOfPersia
Napisane: 4.11.2015, 22:45:17





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

Reguły jakim rządzi się z-index są zamotane, ale jest to na szczęscie opisane:

https://developer.mozilla.org/en-US/docs/We...tacking_context
https://developer.mozilla.org/en-US/docs/We...without_z-index
https://developer.mozilla.org/en-US/docs/We.../Adding_z-index

aha, zrozumialem, że chodzi ci o `z-index` bo jeszcze można ustawić pozycję `z` za pomocą transformacji 3D, ale to dwie różne sprawy.

Cytat
przebijają się na pierwszy plan (czyli mają najniższą pozycję w osi Z).

odwrotnie. Im większy z-index tym bardziej na wierzchu.
  Forum: Przedszkole · Podgląd postu: #1175548 · Odpowiedzi: 1 · Wyświetleń: 216

PrinceOfPersia
Napisane: 29.10.2015, 21:09:19





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

Cytat
$('body').load(location.href);

tutaj jest chyba bestia ukryta. Ładujesz do body z powrotem tę samą stronę, więc ładują się wszystkie skrypty. I od nowa ładuje się document ready, i od nowa się odświeża, od nowa laduje, od nowa odświeża.
- może nie ładuj całej strony ze skryptami tylko jedynie kawałek strony, sam HTML? (albo w ogóle tylko dane w postaci JSON, ale tutaj pewnie byś musiał więcej przerabiać, natomiast zamienić żeby ładował sam HTML możesz w chwilę)
- albo, jeśli chcesz po prostu odświeżyć iframe: http://stackoverflow.com/questions/2064850...sing-javascript
  Forum: Przedszkole · Podgląd postu: #1175112 · Odpowiedzi: 5 · Wyświetleń: 405

PrinceOfPersia
Napisane: 29.10.2015, 14:39:14





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

Cytat
Wiem że są różne wzorce projektowe jednak nie mam takiej wiedzy i doświadczenia, żeby móc stwierdzić który jest lepszy (dysponowanie pamięcią, wydajność, łatwość nauki), a co najważniejsze który pozwoli mi miękko wejść w takie frameworki jak angular czy backbone?

podchodzisz trochę od d... strony wink.gif To frameworki uczą cię wzorców, po to, żebyś stał się lepszym programistą, a nie odwrotnie.

Cytat
Chciałbym powoli odejść od samego jQuery i skupić się bardziej na czystym, zorientowany "obiektowo" javascripcie. Wiem że są różne wzorce projektowe jednak nie mam takiej wiedzy i doświadczenia, żeby móc stwierdzić który jest lepszy (dysponowanie pamięcią, wydajność, łatwość nauki), a co najważniejsze który pozwoli mi miękko wejść w takie frameworki jak angular czy backbone? Podoba mi się Module Pattern ale widzę że dużą popularność ma Prototypal Pattern. Bardzo proszę o rozjaśnienie sytuacji, może przedstawienie obecnych trendów itp Każdy wpis będzie cenny. Pozdrawiam


Angular jest za bardzo zopiniowany. Pisząc w Angularze przestajesz pisać w normalnym, czystym JavaScripcie, bo musisz pisać tak jak Angular od ciebie wymaga. Plusem jest to, że owszem, nauczysz się paru ciekawych wzorców projektowych, choćby wstrzykiwanie zależności (depedency injection), które jest stosowane w Angularze wielu miejscach. Także nauczysz się składania aplikacji z powiązanych ze sobą komponentów(dyrektyw). Co prawda w Angularze komponenty są niedorobione pod kątem implementacji, ale jeśli traktować to jako wzorzec projektowy Komponentu (który wciela x innych frameworków), to bardzo okej. Nauczysz się też pewnych antypatternów, np. to jak nie należy tworzyć modułów w JavaScripcie (angularowe moduły oparte to porażka roku). Jeśli chodzi o inne wzorce, to Angular wykorzystuje również wzorzec Serwisu, który pozwala oddzielić logikę aplikacji od wyświetlania (chodzi o to, że pisząc komponent ("dyrektywę") możesz część kodu umieścić w zewnętrznych obiektach ("serwisach"), dzięki czemu nie bruździsz sobie).

Jednak Angular ma 3 minusy: 1. trudny w nauce 2. uciążliwy przy dłuższym korzystaniu 3. Obecna wersja jest już przestarzała, a nowego Angulara 2 (który ma być już lepszy i prostszy) jeszcze nie ma.

Co do Backbone to bardzo fajny framework na początku. Opiera się na dość prostych zasadach, nauczy cię pewnych rzeczy, choćby MV*, programowania opartego na słuchaniu zdarzeń, otworzy oczy na pewne rzeczy jak może być budowana aplikacja (po zaznajomieniu się z Backbone, potem nawet jak robiłem coś na czystym jQuery, to starałem się wcielać pewne zasady, które zauważyłem w Backbone).

Minusem (choć dla niektórych to będzie plus) Backbone'a jest na to, że wszystko musisz robić samemu, i ten framework to tak jakby nie framework (bo mówię, opierając się na jQuery można napisać atrapę Backbone'a i nie będzie dużo gorsza). Ale dla celów edukacji Backbone jest okej.

Jeszcze jest React, czyli framework, który polega w zasadzie na robieniu komponentów i składaniu ich w większe komponenty. I całą aplikację robisz na komponentach, a potem łączysz to z jakimiś źródłami danych (albo jednym źródłem). Możesz się z niego nauczyć bardziej modularnego podejścia. Poza tym React w dużej mierze opiera się na paradygmatach programowania funkcyjnego, co też jest dużym bonusem do nauki. Zachęca również do bardziej odpowiedzialnego podejścia w kwestii programowania, zwraca uwagę na niemutowalność (czyli niezmienność obiektów) oraz na odpowiednie oddzielenie widoku od kodu logiki (zwykle poprzez tzw. architekturę Flux, która nie jest niczym nowym, ale jest ładnym buzzwordem). Jako że React cię nie pilnuje (możesz robić co chcesz), to powinieneś sam dbać o pewne rzeczy, albo będziesz miał burdel w kodzie i w działaniu. Uczy to odpowiedzialności.

W zasadzie bardzo łatwy do wejścia, chociaż jest wskazane, żebyś nauczył się przy okazji ustawić sobie build system w jakimś Babelu. Nie jest to konieczne co prawda, ale ten krok pozwoli na używanie JSX, czyli składni HTMLa w plikach JS (w React szablony komponentów tworzy się w plikach JS).

Cytat
Podoba mi się Module Pattern ale widzę że dużą popularność ma Prototypal Pattern. Bardzo proszę o rozjaśnienie sytuacji, może przedstawienie obecnych trendów itp Każdy wpis będzie cenny. Pozdrawiam

Obecne trendy w JavaScript są takie, że wraca się do rzeczy sprzed kilkudziesięciu lat oraz odkrywa rzeczy dawno odkryte przez programistów innych języków czy działek programowania. Więc chcesz być na czasie w JavaScripcie - nie zamykaj się na JavaScript - to sam będziesz pionierem i uważany za mesjasza wśród frontendowców.

Jeśli chodzi jednak o konkretne implementacje starych jak świat wzorców projektowych w JavaScript to tu masz ściągę:
http://addyosmani.com/resources/essentialj...npatterns/book/
  Forum: JavaScript · Podgląd postu: #1175068 · Odpowiedzi: 11 · Wyświetleń: 1 456

PrinceOfPersia
Napisane: 25.10.2015, 19:24:26





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

Zależy jakiego masz kupca. Przecież i tak handel rzadko kiedy się odbywa po kosztach. Jak masz biednego kupca, to sprzedasz taniej, jak masz nadzianego kupca to sprzedasz drożej.

Jeśli kupiec jest jakąś biedną firemką to nie zaproponujesz mu za dużej kasy. Z drugiej strony jeśli Google by chciało kupić twój projekt, to z pewnością będzie je stać, żeby ci zapłacić nawet ileś razy więcej niż teoretycznie wart jest projekt. Bo firmę Google byłoby stać na wszystko.

Poza tym czasem gówienka chodzą za miiony dolarów. Np. domeny internetowe. Domeny są "warte" pewnie ułamek grosza, bo to tylko zapis cyfrowy na serwerach DNS - a ludzie kupują je za miliony dolarów czasem... Przepłacają? Niekoniecznie. Po prostu domena jest jedna, i właściciel domeny jest monopolistą, więc może dyktować cenę, bo wie, że jak firmie zależy to kupi nawet bardzo drogo. Popyt, podaż itp.

Również nie byłem w sytuacji wykupienia projektu przez zewnętrzną firmę, więc nie wiem jak dokładnie się to odbywa technicznie i formalnie, ale wydaje mi się, że strasznie dziwnie kombinujesz. Zamiast policzyć co tobie się opłaci (czyli poniżej jakiej ceny sprzedaż ci się po prostu nie opłaci - no bo chyba, jakby ktoś proponował 300zł czy 500 to zapewne byś odrzucił taką ofertę, prawda?), oraz oszacować ile pieniędzy konkretna dana firma byłaby skłonna ci dać (wielka korpo da ci pewnie więcej niż JanuszSoft) - to próbujesz w jakiś dziwny sposób obliczyć coś całkowicie fikcyjnego czyli jakąś urojoną wartość projektu. Nie rozumiem po co.
  Forum: Hydepark · Podgląd postu: #1174701 · Odpowiedzi: 10 · Wyświetleń: 930

PrinceOfPersia
Napisane: 24.10.2015, 15:12:12





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

Cytat
Na początku zastanawiałem się że ilość linijek kodu oraz objętość plików mogą być wyznacznikiem, ale raz że objętość można sztucznie generować (np. dodając komentarze, prawa autorskie czy nazwy zmiennych, funkcji można wydłużać.), tak jak ilość linijek kodu

Nie wpływa. Chyba, że szukasz wałka i chcesz po prostu oszukać nieświadomych urzędników.

A jeśli już to raczej należałoby liczyć odwrotnie - im mniej linijek kodu na daną funkcjonalność tym lepsze programowanie. Bo więcej linijek kodu łatwo naklepać (każdy początkujący programista może naklepać tysiące kodu) ale później ciężko utrzymać. A zaawansowany programista raczej nie będzie produkował linijek kodu, tylko zaklepie np. w 20 linijek to co początkujący w 500.

Tyle, że to też nie jest żadna miara, bo jak projekt jest duży, to naturalnym jest, że i tak się rozrośnie pod kątem linijek kodu. Pytanie tylko, czy będzie to accidental complexity czy inherent complexity.

Anyway - linijki kodu to ciekawe zagadnienie, ale nie mające żadnego bezpośredniego przełożenia na wartość projektu.

Cytat
Oraz w zależności czy strona jest pisana na frameworku (zwykle mają dużo więcej kodu)

którego i tak nikt nie będzie nie widział i nikt nie będzie potrzebował utrzymywać, i nikt nie będzie musiał dopisywać niczego do niego. Czyli tak jakby tego nie było.

Problem z frameworkami jest raczej taki, że należy się ich uczyć. Z drugiej strony ułatwiają wiele rzeczy. No i to jest gotowy kod, który wystarczy użyć.

Cytat
czy na własnym silniku stron, który jest zdecydowanie prostszy pod względem skomplikowania niż pierwszy lepszy framework.

Po pierwsze, jeśli jest napisane na własnym silniku stron, więc trzeba by doliczyć czas potrzebny na jego napisanie.
Po drugie - zdziwiłbyś się jak bardzo skomplikowane mogą być "własne silniki stron", szczególnie pisane przez słabych i niedoświadczonych programistów. Przy czym to "skomplikowanie" to oczywiście wada. Bo doświadczony programista raczej napisze coś prostego, a robiącego to samo.

Generalnie wszystkie te przymiarki jakieś takie bez sensu. Mam wrażenie, że bierzesz się za coś, o czym nie masz zielonego pojęcia (tj. pewnie jesteś osobą nietechniczną?)

Cytat
Wartość_projektu = Suma_pensji_pracownikow + Wartość_twórczości

Co to jest "wartość twórczości" i po kiego grzyba chcesz to liczyć? Jeśli robisz komercyjny program to chyba o "wartości twórczości" się przekonasz licząc statystyki sprzedaży kopii programu. Jeśli nikt programu nie kupi, to będzie miał zerową wartość. Jeśli zarobisz na nim milion złotych, to milion złotych, jeśli Google odkupi prawa do twojego programu za 10 milionów dolarów, to... itd.
  Forum: Hydepark · Podgląd postu: #1174645 · Odpowiedzi: 10 · Wyświetleń: 930

PrinceOfPersia
Napisane: 20.10.2015, 00:46:21





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

jeśli korzystasz z node-sass, to zadaj sobie trud przeczytania choćby README:
https://www.npmjs.com/package/node-sass

Cytat
Output will be saved with the same name as input Sass file into the current working directory if the --output flag is omitted.


Cytat
Options:
(....)
-o, --output Output directory


(zakładając, że odpalasz z linii poleceń, jeśli korzystasz z Grunta czy Gulpa, to pewnie byś musiał podać inaczej te parametry (ale to sobie doczytasz)).
  Forum: Po stronie przeglądarki · Podgląd postu: #1174215 · Odpowiedzi: 3 · Wyświetleń: 742

PrinceOfPersia
Napisane: 17.10.2015, 16:25:19





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

Cytat
Jak myslicie, isc drogą kursy w domu i zdobywanie certyfikator, ze sie ogarnia jakis jezyk czy wymordowac te 3 lata? Jaka jest wieksza szansa na znalezienie pracy?

Jeśli chcesz znaleźć pracę to chyba najlepiej nie rzucać jeszcze, bo fakt studiowania może się przydać podwójnie (raz że studiujesz infę, więc jest podkładka, że niby się nadajesz potencjalnie na juniora, dwa, że studiujesz, więc możesz pracować na umowie o dzieło a ubezpieczenie ci załatwi uczelnia. Mniejsze koszty).

Natomiast jak znajdziesz pracę za kilka miesięcy choćby, to możesz już rzucić szkołę, ponieważ wykształcenie się liczy tylko w pierwszej pracy, jak masz zero doświadczenia, i nie masz choćby dobrego portfolia. Wtedy studia jeszcze cię trochę ratują.

Tyle, że zarówno pójście na studia jak i ich potencjalne rzucenie to są decyzje, których konsekwencje będziesz ponosił ty sam, więc w ogóle przemyślałbym sprawę, zanim zacząłbym słuchać porad obcych ludzi z netu wink.gif
  Forum: Hydepark · Podgląd postu: #1174001 · Odpowiedzi: 30 · Wyświetleń: 2 752

PrinceOfPersia
Napisane: 17.10.2015, 14:46:15





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

- można na ifach, ale będzie to pewnie nieeleganckie, bo nie przewidzisz ile ktoś będzie miał na maksa punktów.
- bardziej eleganckie rozwiązanie byłoby użycie jakiejś funkcji matematycznej. może użyć logarytmu?
np.
[JAVASCRIPT] pobierz, plaintext
  1. var POINTS_CONSTANT = 2; // tu dajesz jakas liczbe
  2. (...)
  3. var factor = Math.log(points + 2);
  4. player.points += factor * POINTS_CONSTANT;
[JAVASCRIPT] pobierz, plaintext

(gdzie factor to twoja zmienna wspolczynnik a points to aktualne punkty, oczywiście. Tam jest `+2` z tego względu, że funkcja Math.log dla zera daje minus nieskończoność, a dla jedynki daje 0, więc chodzi o to, żeby nawet jak masz zero punktów był wynik dodatni (mogło by być pewnie +1.5 )

całość można zaokrąglić:
[JAVASCRIPT] pobierz, plaintext
  1. player.points += Math.floor(factor * POINTS_CONSTANT);
[JAVASCRIPT] pobierz, plaintext


ew. pokombinować z wartościami danymi do Math.log, np. points * 4 + 2, albo odjąć/dodać potem od wyniku jakąś liczbę itp. trzeba by potweakować.

No to tyle, chociaż sprawdź na ile ci to będzie działać (ale i tak pewnie będziesz musiał poeksperymentować), tak na szybko spróbowałem coś wykminić (sam do tej pory na ifach robiłem takie rzeczy, co w sumie nie jest zbyt eleganckie), w każdym razie funkcja logarytmu wygląda zachęcająco:
https://upload.wikimedia.org/wikipedia/comm...h_ticks.svg.png
  Forum: JavaScript · Podgląd postu: #1173986 · Odpowiedzi: 1 · Wyświetleń: 795

PrinceOfPersia
Napisane: 6.10.2015, 14:24:08





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

Cytat("Crozin")
3. Kod staje się zdecydowanie mniej wrażliwy na zmiany. Wewnętrzny stan obiektu nie jest udostępniony bezpośrednio zewnętrznemu "użytkownikowi".

No ale jeśli mamy gettery i settery, to z jednak definicji wewnętrzny stan obiektu jest udostępniany zewnętrznemu użytkownikowi (tyle, że pośrednio, jedyna różnica), i użytkownik może odczytać albo zmienić stan obiektu w dowolnym momencie. I to niebezpiecznie łamie zasadę enkapsulacji.

Dlatego trzeba to robić z rozsądkiem, są sytuacje gdzie gettery i settery są użyteczne, ale stosowanie ich na oślep bo komuś się wydaje, że na tym polega programowanie obiektowe (co jest kompletną bzdurą).

Zamiast setterów/getterów setUbranie (pomijając już, że pisanie zmiennych pół po polsku, pół po angielsku nie ma sensu), można np.:

- zlikwidować potrzebę odwołania się do zmiennych obiektu. Np. załózmy, że mamy konto bankowe. Wtedy jeśli chcemy komuś odjąć kasę z konta, wtedy zamiast pisać
  1. $account->setMoney($account->getMoney() - 100)

co jest dość brzydkie (i również podatne na pomyłki nie bardziej niż twój przykład, @memory, wystarczy, że komuś się plus z minusem pomyli), możemy zrobić metodę charge:
  1. $account->charge(100)

wtedy obiekt sam będzie wiedział, co zrobić z tymi pieniędzmi. Jednocześnie zlikwidujemy potrzebę odwoływania się do wewnętrznego stanu obiektu.

- można jeszcze zlikwidować w ogóle stan obiektu i pozwolić na ustawianie ubrania tylko przy inicjalizacji obiektu (a później dany obiekt byłby po prostu niezmienialny). Wtedy jeśli byśmy chcieli zmienić ubranie to po prostu tworzylibyśmy nowy obiekt klasy Stefan, który by miał skopiowane z poprzedniego właściwości, oprócz ubrania, które byśmy ustawili inne.
  Forum: PHP · Podgląd postu: #1172961 · Odpowiedzi: 14 · Wyświetleń: 1 361

PrinceOfPersia
Napisane: 27.09.2015, 20:12:57





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

Estetyka leży. Strona wygląda jak tworzona na kolanie. Popracuj nad:
- kolorystyką
- ogólnym rozłożeniem elementów na ekranie
- przemyśleniem interakcji użytkownika ze stroną (to menu jest efekciarskie ale całkowicie BEZSENSOWNE pod kątem używania)

czyli generalnie nad wszystkim.

konkretne błędy:

- obrazki są po lewej stronie, a po prawej pustka zupełna (spróbuj `float: left` ustawić na obrazkach)

- to szare tło jest kompletnie brzydkie

- chciałeś zrobić animowane menu? Okej. Ale animacje są za wolne. Jak klikam menu to nie chcę oglądać animacji, tylko chcę zobaczyć menu.

- po menu się okropnie nawiguje. Niepotrzebnie zrobiłeś to w kształcie akordeona, bo teraz trzeba się naklikać po menu solidnie, żeby znaleźć cokolwiek. Menu powinno służyć uzytkownikowi, a ma wrażenie, że posłużyło jedynie tobie (wygląda tak jakbyś się chciał nauczyć robić animacje w jQuery robiąc to menu). Czyli: menu jest strasznie nieczytelne, nie wiadomo jak się w nim poruszać (lepiej byłoby, gdyby podkategorie były od razu widoczne).

- poza tym hamburger na stronie desktopowej? Ok, czasem to się sprawdza, ale tutaj nie ma sensu zbytnio. Jeśli jest miejsce na ekranie, to można równie dobrze wyświetlić od razu całe menu. Hamburger niech sobei będzie jak się wejdzie z mobilki... (w zasadzie nie użyłeś ikonki hamburgera tylko koła zębatego, ale na jedno wychodzi)

- pojawiająca się znikąd niebieska płachta z loaderem przy każdym kliknięciu pozycji menu? Jak dla mnie do wywalenia. Niczemu to nie służy a jedynie może spowodować epilepsję.

Ogólne wrażenie - przygnębiające. Chociaż nie chcę zniechęcać, dużo osób zaczyna od rzeczy słabych, a potem poprawiają swoje skille i to co robią. Rozwój to praca nad sobą i umiejętność poprawy/modyfikacji tego co nie wyszło.
  Forum: Oceny · Podgląd postu: #1172151 · Odpowiedzi: 16 · Wyświetleń: 2 148

PrinceOfPersia
Napisane: 5.09.2015, 14:19:00





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

nie trzeba rezygnować z single page'owatości, żeby mieć normalne linki:
http://diveintohtml5.info/history.html
  Forum: Optymalizacja i pozycjonowanie stron - SEO · Podgląd postu: #1170270 · Odpowiedzi: 8 · Wyświetleń: 2 767

PrinceOfPersia
Napisane: 15.07.2015, 14:58:01





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

Tak. W przeglądarce Chrome (w innych być może też, ale tej używam do debugowania) masz w Dev Toolsach wbudowany debugger z możliwością wykrywania kodu, który się odpala przy zdarzeniach myszy:
https://developer.chrome.com/devtools/docs/...cript-debugging
  Forum: JavaScript · Podgląd postu: #1165151 · Odpowiedzi: 1 · Wyświetleń: 415

PrinceOfPersia
Napisane: 10.07.2015, 06:29:41





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

ogólna nazwa na takie komponenty to autocomplete, typeahead.

ew. napisać własny komponent z takimi funkcjonalnościami jest bardzo prosto (input text do wpisywania tekstu, osobny div do pokazywania podpowiedzi, javascriptowa tablica do trzymania danych do podpowiadania, oraz kod JavaScript, który łączy zdarzenia klawiatury i pokazuje przefiltrowane wyniki).
  Forum: Przedszkole · Podgląd postu: #1164584 · Odpowiedzi: 5 · Wyświetleń: 455

PrinceOfPersia
Napisane: 9.07.2015, 12:35:38





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

Lepiej to zrobić na klasach CSS, a JavaScriptem wyłączać i włączać klasę. Bardziej przejrzyście będzie.
http://jsfiddle.net/pnbx584w/1/
  Forum: Przedszkole · Podgląd postu: #1164489 · Odpowiedzi: 5 · Wyświetleń: 520

PrinceOfPersia
Napisane: 6.07.2015, 11:39:15





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

No tak, tylko ten kod nawet jeśli działa, to jest wręcz fatalny.
[JAVASCRIPT] pobierz, plaintext
  1. document.getElementById("zdjecia").getElementsByTagName("img")[0].onclick=function()
  2. {
  3. var opis = "Opis do zdjęcia numer 1";
  4. document.getElementById("opis").innerHTML = opis;
  5. }
  6.  
  7. document.getElementById("zdjecia").getElementsByTagName("img")[1].onclick=function()
  8. {
  9. var opis = "Opis do zdjęcia numer 2";
  10. document.getElementById("opis").innerHTML = opis;
  11. }
  12.  
  13. document.getElementById("zdjecia").getElementsByTagName("img")[2].onclick=function()
  14. {
  15. var opis = "Opis do zdjęcia numer 3";
  16. document.getElementById("opis").innerHTML = opis;
  17. }
  18.  
  19. document.getElementById("zdjecia").getElementsByTagName("img")[3].onclick=function()
  20. {
  21. var opis = "Opis do zdjęcia numer 4";
  22. document.getElementById("opis").innerHTML = opis;
  23. }
[JAVASCRIPT] pobierz, plaintext

Wiesz, że napisałeś 4 razy to samo? Rozumiem, że łatwiej jest nacisnąć Ctrl+C a potem trzy razy Ctrl+V niż napisać z sensem - ale uwierz, że ten kod będzie później trudny w utrzymaniu. Za każdym razem kiedy trzeba będzie zmienić jedną rzecz, trzeba będzie ją zmienić w 4 miejscach. Jeśli będzie trzeba zmienić trzy rzeczy (albo dodać nowe 3 ficzery), to trzeba będzie pisać 12 razy (bo 3 ficzery * 4 powtórzenia) to samo. A co jesli obrazkow bedzie 50? Bedziesz 50 razy kopiowal to samo?

Pisanie takiego kodu ma uzasadnienie tylko wtedy, kiedy chcemy coś na szybko sprawdzić i na 90% nie będziemy zaglądać więcej do tego skryptu.

Jeśli Salurowi chodziło o taki "jednostrzałowiec" to okej...

Ale jak to ma być coś, co potem ma trwać i być łatwe do zmienienia to juz predzej coś takiego jak to:
http://jsfiddle.net/sa91ktsp/2/

Zresztą... jakby się zastanowić to napisanie z sensem wcale nie zajmuje więcej czasu niż kopiuj-wklejka. Nie mam pojęcia skąd ta moda na copy-pastę.
  Forum: Przedszkole · Podgląd postu: #1164102 · Odpowiedzi: 10 · Wyświetleń: 555

PrinceOfPersia
Napisane: 1.07.2015, 21:28:25





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

Nie. Jak masz małe umiejętności i nigdzie nie pracowałeś to liczy się prędzej upór, siła przebicia, komunikatywność, dobre wrażenie, pewność siebie i mnóstwo innych czynników pozatechnologicznych. Ludzie z zerową wiedzą czasem się chwalą po forach że się zatrudnili gdzieś. A czasem bywa i odwrotnie, więc pierwsza praca raczej nie zależy od umiejętności.

Natomiast jak już trochę popracujesz, dopiero wtedy umiejętności technologiczne zaczynają przybierać na znaczeniu.

Do pewnego stopnia. Bo później, jak już się ma pewne doświadczenie i konkretną wiedzę to się okazuje, że takie rzeczy jak miękkie umiejętności, komunikatywność, kultura osobista etc. liczą się bardziej albo w równym stopniu co programowanie.

Cytat
html+css - dobra znajomość

Jeśli to prawda, że masz "dobrą znajomość" html+css, to nie martwiłbym się o widełki. Solidny HTML/CSS + znajomość związanych z tych technologii to bardzo poszukiwane umiejętności. Chociaż skoro oceniasz swoje umiejętności ogólnie jako słabe to przypuszczam, że w istocie również ta "dobra znajomość" może być nieco naciągana. Ale tego się często człowiek dowiaduje w pracy.

Mimo wszystko jeśli na wstępie pójdziesz do firmy i powiesz im, że jesteś "juniorem z kiepskimi umiejętnościami" to raczej marne szanse, że cię ktoś zatrudni. Jeśli czujesz, że masz małe umiejętności to się douczaj systematycznie w domu, ale idąc na rozmowy lepiej podkreślać swoje zalety/osiągnięcia/umiejętności, a nie słabości.

Cytat
centrum Wrocławia

niestety nie wiem jak się kształtują zarobki we Wrocławiu. Dobrą metodą jest (oprócz zapytania na forum) również przejrzeć ogłoszenia z widełkami (wiele społeczności programistycznych wymaga przy każdej ofercie podania widełek, albo ogłoszenie wylatuje).
  Forum: Hydepark · Podgląd postu: #1163692 · Odpowiedzi: 41 · Wyświetleń: 2 361

PrinceOfPersia
Napisane: 7.06.2015, 18:15:47





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

o tak? http://jsfiddle.net/bbq0bkkw/2/

zamieniłem w HTMLu kolejność Divów:
  1. <div class="maki"></div>
  2. <div class="main">

edit: poza tym brakuje jednego </div>
  Forum: Przedszkole · Podgląd postu: #1160745 · Odpowiedzi: 4 · Wyświetleń: 291

PrinceOfPersia
Napisane: 31.05.2015, 11:42:04





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

zrób sobie code folding w edytorze, od tego to jest. Albo po prostu włącz szukajkę w edytorze i wyszukaj w trybie wyrażeń regularnych:
Kod
^ *\w

powinno cię przenieść do pierwszej linii która zaczyna się od litery (linie z komentarzami będą się zaczynać od `//`)
  Forum: Hydepark · Podgląd postu: #1160111 · Odpowiedzi: 25 · Wyświetleń: 1 833

PrinceOfPersia
Napisane: 9.05.2015, 17:03:14





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

bug:
1. dodałem użytkownika Jan Koval
2. kliknąłem na opcje->oceny. pokazało się takie coś (i przekierowało mnie pod adres : http://dziennik.bwiechnik.dev-bwiechnik.dy.../notes/4e513d3d , btw)
Cytat
Wystąpił błąd
An error occurred during execution; please try again later.
Dodatkowe informacje:
Zend\Db\Adapter\Exception\InvalidQueryException
Plik:
/home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pdo/Statement.php:245
Komunikat:
Statement could not be executed (2201X - 7 - ERROR: OFFSET must not be negative)



#0 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/Db/TableGateway/AbstractTableGateway.php(233): Zend\Db\Adapter\Driver\Pdo\Statement->execute()
#1 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/Db/TableGateway/AbstractTableGateway.php(208): Zend\Db\TableGateway\AbstractTableGateway->executeSelect(Object(Zend\Db\Sql\Select))
#2 /home/bwiechnik/projects/public_html/dziennik/vendor/Extensions/Model.php(46): Zend\Db\TableGateway\AbstractTableGateway->selectWith(Object(Zend\Db\Sql\Select))
#3 /home/bwiechnik/projects/public_html/dziennik/vendor/Extensions/Paginator.php(238): Extensions\Model->fetchSelect(Object(Zend\Db\Sql\Select))
#4 /home/bwiechnik/projects/public_html/dziennik/module/Application/view/partial/table_paginator.phtml(4): Extensions\Paginator->getData()
#5 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php(506): include('/home/bwiechnik...')
#6 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/View/Helper/Partial.php(61): Zend\View\Renderer\PhpRenderer->render('partial/table_p...', Array)
#7 [internal function]: Zend\View\Helper\Partial->__invoke('partial/table_p...', Array)
#8 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php(399): call_user_func_array(Object(Zend\View\Helper\Partial), Array)
#9 /home/bwiechnik/projects/public_html/dziennik/module/Application/view/application/home/notes.phtml(3): Zend\View\Renderer\PhpRenderer->__call('partial', Array)
#10 /home/bwiechnik/projects/public_html/dziennik/module/Application/view/application/home/notes.phtml(3): Zend\View\Renderer\PhpRenderer->partial('partial/table_p...', Array)
#11 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php(506): include('/home/bwiechnik...')
#12 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/View/View.php(205): Zend\View\Renderer\PhpRenderer->render(Object(Zend\View\Model\ViewModel))
#13 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/View/View.php(233): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#14 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/View/View.php(198): Zend\View\View->renderChildren(Object(Zend\View\Model\ViewModel))
#15 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/Mvc/View/Http/DefaultRenderingStrategy.php(102): Zend\View\View->render(Object(Zend\View\Model\ViewModel))
#16 [internal function]: Zend\Mvc\View\Http\DefaultRenderingStrategy->render(Object(Zend\Mvc\MvcEvent))
#17 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(468): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#18 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/EventManager/EventManager.php(207): Zend\EventManager\EventManager->triggerListeners('render', Object(Zend\Mvc\MvcEvent), Array)
#19 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php(352): Zend\EventManager\EventManager->trigger('render', Object(Zend\Mvc\MvcEvent))
#20 /home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/Mvc/Application.php(327): Zend\Mvc\Application->completeRequest(Object(Zend\Mvc\MvcEvent))
#21 /home/bwiechnik/projects/public_html/dziennik/public/index.php(17): Zend\Mvc\Application->run()
#22 {main}


Poprzedni wyjątek:
PDOException
Plik:
/home/bwiechnik/projects/public_html/dziennik/vendor/zendframework/zendframework/library/Zend/Db/Adapter/Driver/Pdo/Statement.php:240
Komunikat:
SQLSTATE[2201X]: <<Unknown error>>: 7 ERROR: OFFSET must not be negative
Stack trace:

(...)



EDIT:
taki błąd chyba jest tam, gdzie się kliknie w edycję ocen uczniów, którzy nie mają jeszcze żadnych ocen (tam gdzie widnieje cyfra zero).
  Forum: Oceny · Podgląd postu: #1157469 · Odpowiedzi: 11 · Wyświetleń: 2 288

PrinceOfPersia
Napisane: 29.04.2015, 21:17:51





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

ku uściśleniu
[] ---> to jest tablica
{} ---> to jest obiekt.

Każda tablica jest również obiektem, bo JS jest językiem obiektowym i większość rzeczy to obiekty.
Natomiast nie każdy obiekt jest tablicą. Jak przypiszesz do zmiennej coś takiego {}, czy {cosTam: 334} itp. to nie będzie to wcale żadna tablica, a obiekt. W JavaScripcie. Bo w PHP istniałoby coś takiego jak tablica asocjacyjna, w JS nie ma tablic asocjacyjnych, za to są obiekty.

Więc zapis
[JAVASCRIPT] pobierz, plaintext
  1. var data = [];
  2. data[elementy[0].name] = elementy[0].value;
[JAVASCRIPT] pobierz, plaintext

powinien działać, tyle, że będzie działał pewnie niekoniecznie tak jakby chciał programista (jeśli się nie rozumie jak to działa do końca) Tzn. jeśli klucz (wartośc zmiennej elementy[0].name) jest liczbą to będzie to zapis tablicowy (bo zmienna data jest tablicą, bo została tak zadeklarowana: [] ), ale jeśli klucz jest stringiem, to tak naprawdę olewamy już tablicowość zmiennej data i odwołujemy się do zmiennej data jako do obiektu, dodając/zmieniając jego właściwości (innymi słowy data['nazwa'] to jest to samo co data.nazwa). Nie jest to jednak to samo, jak dodajemy właściwości do obiektu data, to nie działa właściwość length (bo niby czemu ma działać: http://jsfiddle.net/4Lfnwc8e/
  Forum: JavaScript · Podgląd postu: #1156506 · Odpowiedzi: 16 · Wyświetleń: 668

PrinceOfPersia
Napisane: 26.04.2015, 22:17:12





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

pewnie też, chociaż z lessa mało korzystałem, głównie z sass/scss, więc w tym wrzuciłem przykład.
  Forum: Po stronie przeglądarki · Podgląd postu: #1156057 · Odpowiedzi: 10 · Wyświetleń: 895

PrinceOfPersia
Napisane: 26.04.2015, 22:09:10





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

wszystko fajnie, tylko, że to się akurat da załatwić w czystym CSS:
  1. .all .menu_left ul li.games:hover{
  2. background-color: #ffb10a;
  3. color: #000;
  4. }
  5.  
  6. .all .menu_left ul li.games:hover span icon {
  7. background: url('../images/icon_games.png') no-repeat;
  8. }

(pseudoklasa :hover wcale nie musi być na końcu deklaracji CSS, może być w środku).

edit:
chociaż i tak pod kątem pisania kodu ładniej by to wyglądało w Sass czy SCSS:

  1. .all .menu_left ul li.games{
  2. font-family: sans-serif; //na przykład;
  3. display: block; // na przykład
  4. &:hover {
  5. background-color: #ffb10a;
  6. color: #000;
  7. span icon {
  8. background: url('../images/icon_games.png') no-repeat;
  9. }
  10. }
  11. }

w scss nie musisz powtarzać tych samych selektorów, tylko w jednym drzewie masz deklaracje dla elementu normalnie (bez hovera), tam tylko piszesz &:hover i otwierasz klamrę z deklaracjami dla :hover, tam dodajesz kolejne selektory dzieci (span icon) itp.
  Forum: Po stronie przeglądarki · Podgląd postu: #1156054 · Odpowiedzi: 10 · Wyświetleń: 895

PrinceOfPersia
Napisane: 24.04.2015, 09:25:14





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

-
Kod
return array[array.lengt-1]

literówkę masz w kodzie. powinno być length

- "in work" w sensie, że nieskończony plugin, czy że robisz go w pracy? Jeśli to pierwsze to w społeczności o.s pisze się raczej WIP (work in progress). Jeśli to drugie, to raczej nie powinieneś udostępniać kodu bez porozumienia z pracodawcą wink.gif

- dokumentacja po polsku (tak się nie powinno robić, wszystko w kodzie raczej powinno być po angielsku, bo tym językiem mówi cały świat).

- to ma być open source do używania dla ludzi? To powinna być jakaś jasna licencja (np. MIT czy inna dowolna, ale jednak).

- wydaje mi się, że ten kod jest zbyt rozdmuchany jak na w sumie prostą funkcjonalność:
https://bitbucket.org/grzes999/scrool-nav/s...av.js?at=master
ale być może się mylę, w zasadzie nie robiłem nigdy pluginu do one-page-scrolla, więc może faktycznie jest to aż tak dużo funkcjonalności.
Chociaż to co zauważyłem, to że w pewnych miejscach dałoby sie jednak skrócić kod, ponieważ piszesz w kilku miejscach rzeczy, które są prawie że takie same, np.
Kod
if(settings.offset < currentPos && settings.menuFixed) {
                            $('.scrolnav').css({
                                'position': 'fixed',
                                'top': '0',
                                'left': '0',
                                'width': '100%'
                            });
                        }

i
Kod
if(settings.offset >= currentPos && settings.menuFixed) {
                            $('.scrolnav').css({
                                'position': 'relative',
                                'top': 'auto',
                                'left': 'auto',
                                'width': 'auto'
                            });
                        }

i jeszcze masz ileś takich ifów. Z jednej strony co innego, z drugiej strony bardzo zbliżone działania (tutaj w ogóle bym wydzielił to do klasy w pliku CSS i dodawał/odejmował klasę.
  Forum: Oceny · Podgląd postu: #1155711 · Odpowiedzi: 6 · Wyświetleń: 1 318

PrinceOfPersia
Napisane: 17.04.2015, 22:29:40





Grupa: Zarejestrowani
Postów: 717
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----

Cytat
czy coś się kluczowego w JavaScript zmieniło od 2010 roku?, Bo zamierzam się uczyć JS z książki wydanej w tym roku

nie pamiętam jak wyglądał JS w 2010 roku dokładnie. Ale z tego co pamiętam jak się pisało kiedyś, a jak teraz można:
- funkcje do iteracji po tablicach: forEach, map, filter, reduce. Kiedyś IE nie wspierało, teraz można spokojnie używać.
- kiedyś element Canvas to była nowinka nieobsługiwana przez IE. Teraz nawet IE obsługuje Canvas
- kiedyś do obsługi JSON się ściągało bibliotekę specjalną, albo "na partyzanta" robiło eval. Teraz obiekt JSON jest częścią języka.
- pojawiła się fajna funkcja Object.create do tworzenia obiektów na podstawie innych obiektów.

- nadchodzi wielkimi krokami EcmaScript 6, które wprowadza wiele rzeczy typu klasy (obecnie w JS nie ma klas, tylko są prototypy, funkcje-konstruktory etc. chociaż i tak jak ktoś chce może pracować z czymś, co przypomina klasy. Ale teraz mają być oficjalne ze słowem kluczowym class etc.) ,czy masę innych rzeczy.

- plus to, że pojawiło się maaaaasę bibliotek, narzędzi czy frameworków do JavaScriptu -- ale to już nie jest zasługa języka, tylko raczej dynamicznego community (w zasadzie myślę, że to nawet źle świadczy o JavaScripcie jako języku -- bo wiele bibliotek/frameworków do JS powstały po to, żeby ominać ograniczenia języka, ew. dodać coś, co powinno być w każdym dobrze zaprojektowanym języku, a z jakichś powodów w JavaScripcie nie było.

edit:

no i przyzwoity JavaScriptowiec zna narzędzia typu Grunt, umie napisać coś w NodeJS, zna promise pattern zamiast zagnieżdżać callbacki etc. Plus to, że teraz pisanie w JS zaczyna powoli przypominać prawdziwe programowanie (czyli to nie są już skrypty po 30 linijek a prawdziwe, duże aplikacje, gdzie musisz znać wzorce projektowe, stosować dobre praktyki, pisać testy jednostkowe etc.)
  Forum: JavaScript · Podgląd postu: #1154903 · Odpowiedzi: 4 · Wyświetleń: 551

5 Stron V   1 2 3 > » 

New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 14:58