Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


Orzeszekk
Napisane: 18.07.2012, 12:42:46





Grupa: Zarejestrowani
Postów: 260
Dołączył: 8.09.2011

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

Ja na każdej słyszałem:

- co to obiektowosc
- co to dziedziczenie, hermetyzacja, polimorfizm

korzystalem z tych mechanizmow od dawna, ale nigdy nie pamietalem ktory jest ktory i jakie sa ich definicje, w koncu po 3 rozmowie przeczytalem sobie na wikipedii i nauczylem sie tego na pamiec

- co to jest inner join
- ile pan chce u nas zarabiac (malo ktora lubelska firma chce uczciwie podać widełki) - ty im odpowiadasz a oni odddzwaniaja po tygodniu ze za drogo

Z ciekawszych pytan jakie uslyszalem

- jak opisałbyś kajak przypadkami testowymi (na posade testera)
- (C#) masz kontrolke która wczytuje milion rekordow z bazy danych, i wykonuje na nich jakies operacje, nie mozna tego przeniesc do bazy bo interfejs kontrolki jest generyczny. jak zmniejszylbys uzycie pamieci (chodzilo o hashmapy)
  Forum: Hydepark · Podgląd postu: #978642 · Odpowiedzi: 220 · Wyświetleń: 19 534

Orzeszekk
Napisane: 15.07.2012, 15:42:57





Grupa: Zarejestrowani
Postów: 260
Dołączył: 8.09.2011

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

Cytat(1q2w3e4r @ 9.07.2012, 15:52:35 ) *
Okazuje się, że większość znanych stron jest napisana strukturalnie lub na własnych autorskich rozwiązaniach.


Albo ci się wydaje. Albo jest tak że większość znanych stron powstała w garażu, z palca niedouczonego programisty (wykonanie słabe, ale pomysł był mega), a później nie oplacalo sie przepisywac wszystkiego i dorabialo sie kolejne moduły do autorskiego frameworka, i kolejne i kolejne.. I tak powstał facebook biggrin.gif
  Forum: Object-oriented programming · Podgląd postu: #977632 · Odpowiedzi: 28 · Wyświetleń: 3 145

Orzeszekk
Napisane: 13.06.2012, 22:46:01





Grupa: Zarejestrowani
Postów: 260
Dołączył: 8.09.2011

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

Cytat(coolos @ 13.06.2012, 22:47:53 ) *
Słusznie, lecz z drugiej strony gdyby ktoś, kiedyś nie myślał szerzej, to do tej pory ujeźdżalibyśmy konie zamiast wsiadać do wygodnego autka smile.gif


gdyby kazdy inzynier tworzyl swoje rozwiazania od zera, to nie pisał byś tego co teraz piszesz w php, tylko wlasnie konstruowalbys wlasny mikroprocesor, by napisac na niego wlasnego assemblera by w tym assemblerze napisac kompilator C w ktorym bys napisal parser php i baze danych dla twojego uC, i w nim zrobilbys strone.

napisal bys gre 3d w assemblerze?
nie sądze...

ktos napisal w assemblerze kompilator C, ktos w C napisal translator C++ do C (duniec, nazwiska nie pamietam), ktos w tym napisal silnik graficzny/fizyczny/maszyne wirtualna w ktorej silniki powstaly a ty korzystajac z tych silnikow tworzysz gre, i to jest juz do ogarniecia.

nie da sie tworzyc wszystkiego od zera, chodzi o to by ogarnac to co juz jest, i przerobic to /rozszerzyc/ napisac wlasne ale inspirujac sie tym i nie powielajac bledow poprzedników, stąd pochodzi postęp.

gwarantuje ci ze zrobienie czegos w dobrym frameworku usunie twoje watpliwosci, gdzie kontroler, gdzie widok, jak przeslac dane z widoku do modelu bo to sa smieszne, nieistotne problemy.. konwencja frameworka to narzuci. A jak juz sobie w nim posiedzisz i bedziesz uwazal go za slaby, to wtedy napiszesz wlasny niepowielajacy ich błędów. ale raczej juz wtedy nie bedziesz chcial pisac wlasnego.

chcialbys aby kazde urzadzenie elektryczne mialo inna wtyczke? czy wolisz jak jest normalna wtyczka, na napiecie 230, albo interfejs usb ktorym podlaczysz niemal wszystko do wszystkiego, czy wolisz jak kazde ma inna wtyczke? bo wspolny framework jest wlasnie taka wtyczka spajajaca rozne rozwiazania roznych ludzi. Zrozumiesz jak ktos da ci czyjs kod do rozwijania, wtedy odkryjesz ze "własny framework" w 99% przypadkow podoba sie tylko jego autorowi, i tylko on w nim cos potrafi zrobic.
Skoro tak ciezko namowic ludzi do nauczenia sie chocby tego symfony, wolą pisac wlasne to pomysl jest jak ciezko jest kogos namowic by nauczyl sie czyjegos autorskiego frameworka ktorego pewnie wiecej nigdy poza tym zleceniem nigdy nie zobaczy.

Co do tej innowacyjnosci:

Microsoft zerwal ze wsteczna kompatybilnoscia, wypuszczajac windows phone 7. Chyba caly core systemu zostal napisany od nowa, nie bazujac na komponentach z windowsa mobile 6.5. Windows mobile byl swojego czasu lepszy niz android 1.0, android poszedl mocno do przodu. microsoft wzial sie za pisanie windowsa phone 7 od zera, co prawda system jest swietnie zoptymalizowany, ale widac ze bardzo brakowalo im czasu na to, w pierwszej wersji systemu nie zdazyli nawet dodac kopiowania i wklejania. tylko ze microsoft to jest mocny gracz ktory jest w stanie przezyc 2 lata biedy i nie zdechnąć, zrobią sobie tego wp8 i zbiorą kupony, natomiast normalny program raczej musi byc rozwijany na bazie istniejacych rozwiazan.
ich jest stac zeby zaplacic producentom nawigacji aby zrobili np nawigacje na wp7 specjalnie bo przeciez portowanie z C++ na C# szlo bardzo ciezko i wszytsko musialo byc napisane od zera, po łebkach.
Ale tobie ciezko bedzie zrobic tak zeby namowic ludzi zeby pisali pluginy do twojej architektury. po to sa jakies standardy. i mali gracze je raczej stosuja.
  Forum: Object-oriented programming · Podgląd postu: #969429 · Odpowiedzi: 19 · Wyświetleń: 1 797

Orzeszekk
Napisane: 15.04.2012, 12:21:37





Grupa: Zarejestrowani
Postów: 260
Dołączył: 8.09.2011

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

Dziwny problem. Robisz sobie kontroler common ktory wywolujesz z widoku i ktory zwraca ci dane potrzebne do wyswietlenia nicku uzytkownika. z tego co pamietam to w asp.net i w symfony 1/2 mozna wywolywac akcje z poziomu widoku. A jak sie nie da to robisz helper ktory odpytuje ten kontroler albo od razu model, i zwraca dane ktore dalej sobie wyswietlasz w layoucie jak ci sie zywnie podoba.

w asp.net mvc jest cos takiego jak ViewBag - jest to globalny slownik ktory jest dostepny we wszystkich widokach uzytych do zrenderowania odpowiedzi dla danego requesta. Mozna sobie wczytac jakies dane akcją lub partial akcją, wrzucic to do viewBaga i nastepnie skorzystac z tego w innym widoku. moze tez sobie zaimplementuj cos takiego.

helper nie musi operowac na modelu - wystarczy ze wywola akcje kontrolera ktora mu dostarczy paczke danych. w koncu to kontroler jest od zlepiania modeli i widokow.

sorki ze podaje przyklad z innego jezyka ale teraz glownie na nim siedze a mvc niezaleznie od języka jest podobne wiec chodzi o samą idęę.
  Forum: Object-oriented programming · Podgląd postu: #956330 · Odpowiedzi: 19 · Wyświetleń: 992

Orzeszekk
Napisane: 4.04.2012, 20:23:26





Grupa: Zarejestrowani
Postów: 260
Dołączył: 8.09.2011

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

Daj sobie siana z webformsami i przejdz na mvc to bedziesz mial jakąs kontrole nad tym co sie dzieje.

ewentualnie jak chcesz to są w webformsach kontrolki ajaxowe dzieki ktorym mozesz w kodzie C# wykonywac ajaxowe zapytania. Np kontrolki ktore odswiezaja ci sie co minute. wiecej w ksiazce MCTS 70-515 programming in asp.net 4.0 ktora bez problemu znajdziesz na necie, bodajze 7 rozdzial.

mozliwe ze zle podchodzisz do problemu od strony projektowej i nadmiernie kombinujesz zamiast rozdzielic to np na 2 widoki czy cos
  Forum: XML, AJAX · Podgląd postu: #953772 · Odpowiedzi: 9 · Wyświetleń: 1 211

Orzeszekk
Napisane: 29.03.2012, 12:43:40





Grupa: Zarejestrowani
Postów: 260
Dołączył: 8.09.2011

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

A dlaczego 90% piszących w PHP choruje na chorobę pod tytułem "Musze miec wlasny framework/biblioteke widoków/biblioteke orm/routing/dodaj sobie cos jeszcze"

router sluzy do tego by rozluznic połączenie pomiedzy URL-ami a pomiedzy fizyczna zawartoscia i lokacja plików PHP. co będzie robil zalezy od tego jak go sobie zrobisz.

Standardowo routerem jest FrontController, plik php przez ktory idą wszystkie żadania i ktory poprzez odpowiednie parametry deleguje żądania do odpowiednich kontrolerów i ich akcji.

Router nie tworzy widoków, tylko uruchamia akcje w kontrolerze. Zwracaniem widoków zajmuje sie kontroler.
najlepiej popisz sobie w jakims normalnym pisanym z jakims poszanowaniem reguł programowania obiektowego frameworku, i w ten sposob najszybciej zobaczysz po co ten router jest.
  Forum: Object-oriented programming · Podgląd postu: #951891 · Odpowiedzi: 1 · Wyświetleń: 511

Orzeszekk
Napisane: 3.03.2012, 01:00:56





Grupa: Zarejestrowani
Postów: 260
Dołączył: 8.09.2011

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

Wywal joina, zrób 2 oddzielne zapytania. najpierw pytasz sie o playera, a następnie, w drugim zapytaniu robisz zapytanie o jego gildie w stylu:
  1. SELECT * FROM guilds WHERE guild_id = $guildID
, $guildID bierzesz z poprzedniego zapytania z tabeli players.

Jeżeli będzie zero to nic nie zwroci - ewentualnie mozesz dodac warunek ze zapytanie sie wykona tylko jak $guildID != 0.

Wiesz, nie chce cie wprowadzic w błąd, olałem 90% wykladow z Inzynierii Oprogramowania i 50% laborek, jednakże wydaje mi sie że Join służy do łączenia tabel ktore są połączone relacją 1:1 (czyli jeden wiersz w tabeli jednej odpowiada dokladnie jednemu w tabeli drugiej).
U ciebie czesc graczy nie nalezy do zadnej gildii wiec relacja 1:1 nie zachodzi (scislej jest to relacja 1:n - wiele graczy moze na raz nalezec do jednej gildii, ale kazdy gracz moze miec tylko jedna gildie).

Jesli chcesz pisac duze aplikacje, moze zainteresuj sie programowaniem obiektowym i odwzorowaniem bazy danych na obiekty (ORM), np Doctrine2? bedzie ci duzo latwiej ogarnąć złożoność. Nie widze u ciebie zadnych modeli, widokow, zapewne będziesz w wielu miejscach robił copy&paste przez to, a nastepnie bedziesz poprawial wiele razy te same błędy w roznych miejscach.
  Forum: Przedszkole · Podgląd postu: #945331 · Odpowiedzi: 2 · Wyświetleń: 226

Orzeszekk
Napisane: 3.03.2012, 12:34:10





Grupa: Zarejestrowani
Postów: 260
Dołączył: 8.09.2011

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

pisalem to z glowy bez sprawdzenia czy dziala, myslalem ze potrzebujesz podpowiedzi a nie rozwiazania kopiuj&wklej. zaraz ci dam w pełni sprawne.

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. "http://www.w3.org/TR/html4/loose.dtd">
  3. <title>Przykladowa strona</title>
  4. <script type="text/javascript" src="Javascripts/jQuery.js"></script>
  5. <script type="text/javascript">
  6. var inputWithKeysSelector = "input#keys_selector";
  7. $ ( document ).bind ( 'keypress', function ( e )
  8. {
  9. var pressedKeyCode = e.keyCode;
  10. var pressedChar = String.fromCharCode ( pressedKeyCode );
  11. var input = $ ( inputWithKeysSelector );
  12. // Wersja dodająca znaki: z, x, c, d, e...
  13. var newValueOfTextField = input.val () + pressedChar + ", ";
  14. // wersja wyswietlajaca tylko ostatni znak
  15. // var newValueOfTextField = input.val();
  16. input.val ( newValueOfTextField );
  17. } );
  18. </script>
  19. </head>
  20. <div>
  21. <span> Tutaj pojawią się znaki wpisywane przez ciebie: </span>
  22. <span><label for="keys_selector">Znaki:</label><input type="text" id="keys_selector" style="width: 600px;"/></span>
  23. </div>
  24. </body>
  25. </html>


Tylko daj sobie własną ścieżkę do JQuery w <script type="text/javascript" src="Javascripts/jQuery.js"></script>
  Forum: Szukam · Podgląd postu: #945381 · Odpowiedzi: 12 · Wyświetleń: 1 726

Orzeszekk
Napisane: 29.02.2012, 11:52:40





Grupa: Zarejestrowani
Postów: 260
Dołączył: 8.09.2011

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

W skrypcie który nam dałeś, w ogóle nie ma funkcji pokaz_ukryj wiec ciezko cokolwiek powiedziec na temat jego działania.

Zreszta skoro jako pierwszy argument podaje sie tej funkcji zakladke do wyswietlenia a jako drugi zakladke do schowania to moze byc tak ze ten skrypt dziala tylko dla dwóch zakładek.

Poszukaj jakiegos lepszego skryptu

Może o ten będzie dobry? skrypt. Te masz od razu z ajaxem i zapewne dobrze udokumentowane.
  Forum: JavaScript · Podgląd postu: #944565 · Odpowiedzi: 2 · Wyświetleń: 296

Orzeszekk
Napisane: 26.02.2012, 17:43:41





Grupa: Zarejestrowani
Postów: 260
Dołączył: 8.09.2011

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

wczytujące promowane:
select * from `nazwa_tabeli` where `pole_oznaczajace_promowanie`=1

wczytujace niepromowane
select * from `nazwa_tabeli` where `pole_oznaczajace_promowanie`=0

wczytujace wszystko
select * from `nazwa_tabeli`

zły dział.
  Forum: Object-oriented programming · Podgląd postu: #943805 · Odpowiedzi: 2 · Wyświetleń: 362

Orzeszekk
Napisane: 19.02.2012, 03:52:26





Grupa: Zarejestrowani
Postów: 260
Dołączył: 8.09.2011

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

w zaleznosci od przegladarki z ktorej korzystasz powinienes miec jakas konsole błędów albo feature "break on exception".

zeby powiedziec dokladnie gdzie masz błąd to troche za mało kodu, musialbys dac rowniez tą tabelke w htmlu którą chcesz zapelnic liczbami.

W ogole to najlepiej na początek zabawy z javascriptem daj sobie spokoj z czystym javascriptem - tylko sie zrazisz. Uzywaj jQuery. Biblioteka jQuery niweluje roznice miedzy przegladarkami na poziomie javascriptu, bez jQuery musisz pisac kod na kilka przeglądarek na raz.

Alerta wstawiasz przed czy za setSquare(i) ? Bo jezeli wstawiasz go przed i otrzymujesz tylko jeden wynik, to najprawdopodobniej w setSquare jest błąd który powoduje wyrzucenie wyjątku i zatrzymanie wykonywania skryptu. Najprawdopodobniej jesli zakomentujesz w tej petli setSquare, a zostawisz sam alert(i), powinienes uzyskac 24 alerty, to raczej nie w petli jest problem tylko w tym setSquare.

Tak patrzac na szybko problemem moze byc innerHtml, niektore przegladarki posiadaja ten parametr pod inną nazwa z tego co pamietam ze swoich bojów w javascripcie. za to metoda jquery $(element).html('tekst_do_ustawienia'); dziala jednakowo pod kazdą przegladarką biggrin.gif

Najlepiej uzyj firebuga / opery dragonfly / chromowskiego "przegląd elementu" czy nawet F12 w internet explorerze i poustawiaj breakpointy i sprawdzaj linijka po linijce w ktorym momencie skrypt sie wykrzacza.

  Forum: Przedszkole · Podgląd postu: #941662 · Odpowiedzi: 2 · Wyświetleń: 1 083

Orzeszekk
Napisane: 5.01.2012, 18:58:06





Grupa: Zarejestrowani
Postów: 260
Dołączył: 8.09.2011

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

Interfejs jest klasa abstrakcyjna w ktorej wszystkie metody sa abstrakcyjne, nie-statyczne oraz publiczne. Jest to zbior nagłówkow metod za pomocą ktorych mozna sie komunikowac z obiektem (na pewno).

moze interfejsy w php nie maja zbyt duzego zastosowania bo to jezyk dynamiczny, ale w javie np uzywa sie ich aby okreslic czy jakas klasa jest w stanie wykonac dana czynnosc (np jesli implementuje Serializable to znaczy ze mozna ja serializowac, itd..).

Z tych cech interfejsow ktore podalismy wynika ze kazda metoda w klasie jest na pewno abstrakcyjna, wiec nie uzywamy tego keyworda.

interface costam
{
public function jedna();
public function druga();
}

interfejs moglbys zapisac za pomoca klasy abstrakcyjnej

abstract class costam
{
abstract public function jedna();
abstract public function druga();
}


jednak taki sposob zapisania nie pozwala na zaimplementowanie kilku interfejsow jednoczesnie , a jak zrobisz interface to mozesz ich i 100 zaimplementowac w klasie smile.gif
  Forum: Object-oriented programming · Podgląd postu: #928603 · Odpowiedzi: 6 · Wyświetleń: 493

Orzeszekk
Napisane: 28.12.2011, 15:30:38





Grupa: Zarejestrowani
Postów: 260
Dołączył: 8.09.2011

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

z racji ze to dział gotowe rozwiązania, a ja kiedys rowniez zostałem odwiedziony od pomyslu pisania wlasnej captchy na rzecz recaptchy, tobie również ją polecam. jest to aktualnie chyba najbezpieczniejsza captcha jaka istnieje. no i pomagasz digitalizowac ksiazki biggrin.gif

Zaletą re-captchy jest rowniez to ze obsluguje nieslyszących i pozwala odswiezac obrazek jesli jest za trudny - zrobiles u siebie cos takiego?

Twoja captche bedzie robotom łatwiej rozwiazac niz recaptche - ulatwiasz im zadanie wprowadzajac kilka kolorow (ocr-owi bedzie latwiej rozpoznac ksztalty), stosujesz za proste czcionki, litery w ogole nie zachodza na siebie i nie sa poddane nielinearnym przekształceniom.

Gdyby twoja captcha miala wieksze litery ktore bylyby roznych czcionek, porozcierane, zachodzące na siebie oraz powyginane jakims beczkowatym przeksztalceniem, bylaby sensowniejsza.

Po za tym czlowiekowi jest latwiej przeczytac tekst od lewej do prawej, nawet lekko rozmazany (w koncu jestesmy w tym lepsi niz komputery), ale wydobyc literki o odpowiednich kolorach z tekstu i przepisac je w kolejnosci juz nie bedzie tak prosto. Wkurzysz ludzi trudną captchą, wyjda z twojej strony, nici z kasy z reklam.
Jest to typowy przyklad captchy latwej dla maszyny, trudnej dla czlowieka.

Odbiorca nawet nie musi byc idiotą zeby mu sie nie chcialo tego rozkminiac - po prostu i glupi i inteligentny wie ze przycisk wstecz dziala znacznie szybciej niz uciazliwa captcha. Tym bardziej ze google zazwyczaj wyswietla kilka(nascie/dziesiat/set) stron o podobnej tresci, obok, w tych wynikach wyszukiwania gdzie znaleziono twoja strone.

to powinno rzucic troche swiatla na sprawe:
PDF - analiza różnych re-captchy i ich skutecznosci

znalezc te kilka kropek to wbrew pozorom nie problem.

Jednak jako autorskie rozwiazanie ma zalete - jest szansa ze nikomu nie bedzie sie chcialo pisac do twojej captchy bota specjalnie. jednak gdy juz sie ktos skusi to raczej zlamie ją szybko.
  Forum: Gotowe rozwiązania · Podgląd postu: #926033 · Odpowiedzi: 53 · Wyświetleń: 4 511

Orzeszekk
Napisane: 30.11.2011, 23:53:07





Grupa: Zarejestrowani
Postów: 260
Dołączył: 8.09.2011

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

Cytat(Dipter @ 30.11.2011, 23:49:43 ) *
Zacznijmy od tego, że to że Daniel to świr i ma nie wiadomo jakie umiejętności - To tylko właściwości obiektu klasy Człowiek.



Samochód stworzony z drewna czy ze stali nierdzewnej to już inna działka, bo wtedy to byłyby klasy osobne DrewanianeAuto, MetaloweAuto, PapieroweAuto, które mogłyby dziedziczyć po AbstrakcyjneAuto, z abstrakcyjną metodą buduj.



W takim razie albo źle uważałeś na kursach, albo wykładowca sam źle dziedziczył, ale umysłowo.


umiejetnosc jest metodą a nie polem chyba ze uzywamy języka na prototypach

nie mozliwe zeby tyle ludzi na raz sie pomylilo wiec najprawdopodobniej zafiksowaliscie sie na jakims niefortunnym zdaniu i nie chce wam sie przeczytac calego posta np to:

Z tego by wynikało, że każdy Daniel ma to samo IQ... < jakim cudem skoro napisalem ze mnozymy przez mnoznik specyficzny dla daniela?
__construct(IQ)
{
$this->IQ = IQ*self::mnoznik;
}

ew.
{
$this->IQ = IQ*$this->getMnoznik();
}

studia lublin, ale przedmiot inzynierie oprogramowania akurat zrobilem w danii bedac na wymianie wiec pretensje do duńca mającego firmę obslugujaca dunskie systemy lotnisk ktory nam to wykladal. z pewnoscia byl chory umyslowo i niedouczony.

przyklad z zycia wziety: mam klase PhotoUploader ktora calosciowo odpowiada za upload obrazka, obciecie uzytkownikowi limitów etc.
moze rowniez ona zmniejszyc zbyt duzy obrazek.

Wprowadzam sobie zalozenie ze wszystkie avatary maja miec po 200 px.

wiec uploadujac kazdy avatar ktorych mam kilka dla roznych obiektow na stronie mam pisac new PhotoUploader(200,200) lub PhotoUploader(Avatar_Width, avatar_height) ?

Ja to wole zrobic prosciej: class AvatarUploader{ public function __construct() { parent::__construct(avatar_width, avatar_height) } }

Im mniej parametrow tym lepiej. Biore klase avatarUploader za kazdym razem gdy potrzebuje wrzucic obrazek i nie musze pamietac co wpisac w parametry by dzialalo ok.
  Forum: Object-oriented programming · Podgląd postu: #918627 · Odpowiedzi: 23 · Wyświetleń: 1 739


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: 26.04.2024 - 07:30