Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> [skrypt] "framework" OpenWikiBlog, Wolne oprogramowanie
SHiP
post 1.09.2010, 19:48:59
Post #21





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

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


@mike: wcale tak nie jest. Niektórzy przyjmują, że komentarzy powinno być tyle, że po usunięciu kodu i zostawieniu samych komentarzy dało się aplikację napisać od nowa. To o czym mówisz to jedynie jedna z konwencji. Moim zdaniem zawsze się wybiera między:
1. mało komentarzy => kod czytelniejszy ale mniej optymalny
2. dużo komentarzy => kod mniej czytelny ale szybszy

Pomijam fakt, że w tym projekcie część komentarzy jest totalnie kretyńska: zobaczcie np. core/database.php
  1. //# What and From
  2. $SQL = 'SELECT ' .mysql_escape_string($What). ' FROM `' .$this->PREFIX.mysql_escape_string($From). '`';
  3.  
  4. //# Where
  5. if ( $Where != '' )
  6. {
  7. $Where = $this->convertWhere ( &$Where );
  8. $SQL .= ' WHERE' .$Where;
  9. }
  10.  
  11. //# OrderBy and POS
  12. if ( $OrderBy != '' )
  13. {
  14. $OrderBy = $this->convertWhat(&$OrderBy);
  15. $SQL .= ' ORDER BY ' .$OrderBy;
  16.  
  17. //# Pos ( ASC, DESC )
  18. if ( $POS == 'DESC' )
  19. $SQL .= ' DESC'; # DESCENDING
  20. else
  21. $SQL .= ' ASC'; # ASCENDING ( DEFAULT )
  22. }
  23.  
  24. //# Limit
  25. if ( $LimitFrom != '' AND $LimitTo != '' )
  26. {
  27. $SQL .= ' LIMIT ' .intval($LimitFrom). ',' .intval($LimitTo);
  28. }


EDIT:
dzięki za link winksmiley.jpg ale ubogi ten phpDoc.

Ten post edytował SHiP 1.09.2010, 19:52:53


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
erix
post 1.09.2010, 19:53:14
Post #22





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Nie muszę podawać argumentów, masz kod.

No właśnie kod mnie nie zachęcił, ale może Twój fw ma jakieś szczególne funkcje, których nie widać na pierwszy rzut oka.

Mówisz teraz tak, jak prelegenci z Microsoftu na phpConie. Pytam: dlaczego wg Pana Expression Web jest lepszy od konkurencji? A on: wcale nie twierdzę, że jest lepszy..

Sory, ale skoro nie jesteś pewien, jako autor, że Twój fw ma jakieś atuty, to raczej wątpliwe, aby wyszedł on z garażu. Może to brutalne, co powiedziałem, ale konkurencja jest i skoro nie możesz wypunktować jego mocnych stron - lepiej poświęcić czas na poznawanie innych, rozplanowanych.

Sam od kilku lat rozwijam swojego fw i pomimo setek linii kodu, schematów powiązań między poszczególnymi elementami, nadal nie uważam, że nadaje się jeszcze do publicznych tekstów, znam jego słabe strony, ale jest też kilka mocnych, których inne nie mają.

W przypadku Twojego, niestety, kod nie jest mocną stroną i bez dokumentacji nie da się czegoś wygodnie pisać. Zaskocz mnie, pokaż że warto się nim zainteresować.

Marketing też jest istotny; nie sprzedasz nowej wiertarki z potrójnym udarem, jeśli na półce nie będzie się wyróżniała spośród reszty. Pamiętaj, że Twoja marka nie ma jeszcze wyrobionej opinii, więc musisz jakoś ZACHĘCIĆ odbiorców.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Zyx
post 1.09.2010, 20:15:23
Post #23





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Małe info - poszczególne fragmenty mogą być adresowane do różnych rozmówców.

Ad. referencji -> po pierwsze, używanie referencji do "oszczędzania pamięci" i "zwiększenia wydajności" to jedno wielkie nieporozumienie z takiego prostego powodu, że PHP posiada wbudowany mechanizm leniwego kopiowania, tj. właściwa kopia robiona jest dopiero wtedy, gdy dane mają ulec modyfikacji. Gdy dane są pobierane "tylko do odczytu", odczytywana jest dokładnie ta sama wartość, a ponieważ PHP nie musi tworzyć dodatkowych struktur danych na utrzymywanie referencji, takie coś jest nie tylko szybsze, ale paradoksalnie oszczędniejsze pamięciowo. Ponadto nie realizujesz nawet tego, co piszesz, bo w wielu miejscach owszem, argumenty przekazujesz przez referencję, ale później już robisz zwykłe przypisanie.

Ad. systemu szablonów -> widzisz, gdybyś używał standardowego nazewnictwa, nie musiałbyś nic dostosowywać z nową wersją, chyba że pomiędzy wydaniami ze zmienionym pierwszym numerkiem. Korzystam z wielu różnych bibliotek, które właśnie dzięki temu, że zachowują pewne wspólne konwencje, mogą być bez problemu używane razem i aktualizacja sprowadza się w zasadzie do wgrania nowych plików. Natomiast czym jest standardowe nazewnictwo ->
- http://www.zyxist.com/pokaz.php/standaryzacja_php
- http://groups.google.com/group/php-standar...-proposal?pli=1

Ad. klasy tłumaczeń -> a co ma format PO czy "XML" (w cudzysłowiu, bo nie ma czegoś takiego, jak "format XML". XML to meta-język, w którym dopiero można jakiś język opisać) do MessageFormattera, kiedy jedno i drugie zajmuje się zupełnie innymi rzeczami?
- PO - składowanie i zarządzanie tekstami do tłumaczenia
- MessageFormatter - formatowanie konkretnej wiadomości
Jedno drugiego nie wyklucza - możesz mieć teksty w formacie MessageFormattera, który jest dużo dokładniejszy, niż printf() (zwłaszcza w takich rzeczach, jak np. obsługa liczby mnogiej), zapisane w pliku PO. W ogóle poczytaj sobie nieco o tej klasie, a zwłaszcza na jakiej bibliotece bazuje to rozszerzenie (i ilu producentów i aplikacji z niej korzysta), bo Twoje słowa zupełnie nie pokrywają się z rzeczywistością.

Ad. różnych "opcjonalnych dodatków" - moim zdaniem warto zastanowić się czy niektóre z takich dodatków faktycznie są potrzebne. Już kilkakrotnie przekonałem się, że czasem lepiej jest powiedzieć "ma być tak i koniec", ponieważ w przeciwnym wypadku będziesz miał na każdym kroku mnóstwo dylematów "OK, jak ten moduł jest wyłączony, to mogę to zrobić prosto, ale ponieważ gość może go sobie włączyć, wtedy muszę to przewidzieć i dopisać tu jeszcze 154 ify, by obsłużyć wszystkie możliwe kombinacje".

Ad. PHP 5.3 -> zanim webnull skończy ten "framework", jeszcze wody w Wiśle upłynie. Dziwne, że jakoś nikt nie ma oporów przed polecaniem przestrzeni nazw, tak jak inni nie mają oporów przed ich stosowaniem, a tu się czepiacie o jedną głupią klasę. A potem się będzie biadolenie na blogach, że "PHP 5.3 jest już tyle czasu, a wciąż kupa skryptów nie korzysta z jego dobrodziejstw", tak jak to z PHP 4 było. Zresztą, po co mają to wprowadzać na hostingach, skoro programiści nie znają nawet podstawowych informacji o tym, co w tej wersji wprowadzono i mają podejście, że "po co mają się uczyć, skoro hostingowcy tego nie wprowadzają"? To się nazywa samospełniającą się przepowiednią i ja osobiście nie mam zamiaru w niej brać udziału. Jak ktoś chce być zacofańcem, a potem na to samo zacofanie narzekać, to było mi miło, ja się mu kłaniać nie zamierzam.


--------------------
Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0
Go to the top of the page
+Quote Post
mike
post 1.09.2010, 20:19:45
Post #24





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


~SHiP wybacz ale nazwiska sygnatariuszy manifestu Software Craftsmanship przekonują mnie bardziej.
Po lekturze Clean Code: A Handbook of Agile Software Craftsmanship faktycznie zacząłem pomijać komentarze na rzecz samo dokumentującego się, czytelnego kodu.
I uwierz mi, to nie chodzi o żadną optymalność czy szybkość kodu. Chodzi o jego czytelność i łatwość przyswajania przez czytelnika. Jednoznacznie brak komentarzy idzie na plus.

P.S.
Mój ulubiony komentarz to:
  1. public Klasa {
  2. /**
  3.   * Konstruktor domyślny.
  4.   */
  5. public Klasa() {
  6. }
  7. }
O RLY? biggrin.gif
Go to the top of the page
+Quote Post
Babcia@Stefa
post 1.09.2010, 20:48:05
Post #25





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


Cytat(SHiP)
Pomijam fakt, że w tym projekcie część komentarzy jest totalnie kretyńska: zobaczcie np. core/database.php


To jest prawda, jednak te komentarze nie były na darmo.
Te komentarze ułatwiły Mi pisanie kodu tych funkcji, bez nich bym się pogubił więc raczej te komentarze są po prostu dla Mnie i mogę je usunąć ponieważ funkcje skończone..

-- WebNuLL


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post
SHiP
post 1.09.2010, 22:21:14
Post #26





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

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


@mike: zgadzam się i sądzę, że ilość komentarzy należy zmniejszać do minimum. Czasem jednak skomplikowanie algorytmu/wyrazenia regularnego etc. jest tak duże, że trzeba to opisać w kilku słowach winksmiley.jpg. Po prostu są ludzie, którzy twierdzą inaczej.

@zyx: Czepiasz się szczegółów. Chodziło po prostu o trzymanie tłumaczeń w pliku PO lub w pliku xml(i tutaj np xliff). Wybacz ale Twój wcześniejszy post można było odebrać jakby php 5.3 miało wbudowany system tłumaczący. W dalszym ciągu jednak proszę o przykład, ponieważ klasa zastosowana przez Babcia@Stefa nie jest tragiczna, a obsługę MessageFormattera może w każdej chwili dodać(np gdy 5.3 będzie bardziej popularne).


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
Babcia@Stefa
post 2.09.2010, 17:56:11
Post #27





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


Cytat(SHiP @ 1.09.2010, 22:21:14 ) *
@mike: zgadzam się i sądzę, że ilość komentarzy należy zmniejszać do minimum. Czasem jednak skomplikowanie algorytmu/wyrazenia regularnego etc. jest tak duże, że trzeba to opisać w kilku słowach winksmiley.jpg. Po prostu są ludzie, którzy twierdzą inaczej.

@zyx: Czepiasz się szczegółów. Chodziło po prostu o trzymanie tłumaczeń w pliku PO lub w pliku xml(i tutaj np xliff). Wybacz ale Twój wcześniejszy post można było odebrać jakby php 5.3 miało wbudowany system tłumaczący. W dalszym ciągu jednak proszę o przykład, ponieważ klasa zastosowana przez Babcia@Stefa nie jest tragiczna, a obsługę MessageFormattera może w każdej chwili dodać(np gdy 5.3 będzie bardziej popularne).


Jest coś takiego jak sprawdzanie wersji PHP przez skrypt (co może być jednak wyłączone na niektórych serwerach dlatego odpada), ale jest także class_exists które może sprawdzić czy klasa MessageFormattera istnieje - jeżeli tak to załadować i przygotować do używania a jeżeli nie to usuwać syntax MessageFormattera ( "{" i "}" ) wyrażeniami regularnymi.

-- WebNuLL

Ten post edytował Babcia@Stefa 2.09.2010, 17:56:52


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post
nospor
post 2.09.2010, 20:01:08
Post #28





Grupa: Moderatorzy
Postów: 36 469
Pomógł: 6300
Dołączył: 27.12.2004




a ja sie poczepiam trochę bazki
  1. `id` int(2) NOT NULL AUTO_INCREMENT,
  2. `name` varchar(30) NOT NULL,
  3. `passwd` varchar(180) NOT NULL,
  4. `privigle` int(2) NOT NULL,
  5. `restrictip` varchar(200) NOT NULL COMMENT 'Here is a place for PHP serialized array with ip numbers',
  6. `disabled` int(1) NOT NULL COMMENT 'Is admin account enabled?',
  7. `unblock_time` int(20) NOT NULL COMMENT 'When the account will become avaible? - Unix timestamp format only',
  8. PRIMARY KEY (`id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

1) int(1), int(2) - te cyferki w nawiasach niczemu nie sluzą (sluża jedynie dla zerofill ktorego nie uzywasz) a juz na pewno nie określają rozmiaru przechowywanych liczb
2) `disabled` int(1) NOT NULL COMMENT 'Is admin account enabled?', - wartosc 0 lub 1 przechowujesz w typie INT ktory zajmuje 4 bajty. Tu nalezy dac pole TINYINT ktore zajmuje 1 bajt
3) `passwd` varchar(180) NOT NULL,
po insercie widzialem ze haslo to hash. Czemu wiec mowisz ze moze miec 180 znaków?
4) `restrictip` varchar(200) NOT NULL COMMENT 'Here is a place for PHP serialized array with ip numbers',
to powinna byc dodatkowa tabela
5) `unblock_time` int(20) NOT NULL COMMENT 'When the account will become avaible? - Unix timestamp format only',
o typach czasowych slyszal?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
erix
post 2.09.2010, 20:34:07
Post #29





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
4) `restrictip` varchar(200) NOT NULL COMMENT 'Here is a place for PHP serialized array with ip numbers',
to powinna byc dodatkowa tabela

Już pomijam fakt, że adres IP można zapisać via ip2long w INT. A o różnicach w wydajności chyba wspominać nie muszę?



--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Babcia@Stefa
post 2.09.2010, 21:14:38
Post #30





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


Cytat(erix @ 2.09.2010, 19:34:07 ) *
Już pomijam fakt, że adres IP można zapisać via ip2long w INT. A o różnicach w wydajności chyba wspominać nie muszę?


Nie chciałem za bardzo nie potrzebnie rozbudowywać bazy danych, ale skoro mówicie, że wypadałoby to tak uczynię - jednak zrobię to w Sobotę/Niedzielę bo wtedy znajdę czas.

Dziękuję.

Cytat(nospor)
o typach czasowych slyszal?


Zrobiłem to po prostu starym sposobem, dzięki za uwagę.

Cytat(nospor)
wartosc 0 lub 1 przechowujesz w typie INT ktory zajmuje 4 bajty. Tu nalezy dac pole TINYINT ktore zajmuje 1 bajt


Oh, faktycznie tutaj zrobiłem błąd, poprawię go w najbliższym commicie ( sobota/niedziela ).

Cytat(nospor)
po insercie widzialem ze haslo to hash. Czemu wiec mowisz ze moze miec 180 znaków?


Baza danych narazie taka testowa jest, a ile hash ma znaków tego nie liczyłem narazie więc nie wiem ile mogę tam wstawić.

-- WebNuLL

Ten post edytował Babcia@Stefa 2.09.2010, 21:18:59


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post
erix
post 2.09.2010, 21:59:35
Post #31





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
a ile hash ma znaków tego nie liczyłem narazie więc nie wiem ile mogę tam wstawić.

Bez urazy, ale bez wiedzy o czymś takim piszesz fw...?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
mike
post 3.09.2010, 10:26:00
Post #32





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(Babcia@Stefa @ 2.09.2010, 22:14:38 ) *
Baza danych narazie taka testowa jest, a ile hash ma znaków tego nie liczyłem narazie więc nie wiem ile mogę tam wstawić.
Brak jakichkolwiek podstaw i pisanie frameworka? Puknij się w głowę i wracaj do nauki podstaw.
No ale odpowiem Ci: To zależy jaki hash
Go to the top of the page
+Quote Post

2 Stron V  < 1 2
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 29.05.2024 - 23:25