Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [umiejętności] na podstawie części kodu., proszę o ocenę umiejętności programisty
k_c2or
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.02.2003
Skąd: Białystok

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


w związku z tym: http://forum.php.pl/index.php?showtopic=38025 tematem zgłosiło się kilka osób chętnych do współpracy przy tworzeniu nowej wersji mojego serwisu. Każdego z nich poprosiłem o napisanie części jednego z modułów, aby ocenić ich umiejętności i później wybrać tego, którego kod będzie najpoprawniejszy, etc.

Ponieważ sam nie znam php postanowiłem poprosić o ocenę Was, jak mniemam, specjalistów w tej dziedzinie. Pierwszy kod do oceny już mam. Jest to niewielka część modułu newsów, zaledwie odłamek serwisu, który ma na celu sprawdzenie, czy autor poradzi sobie z napisaniem szybkiego, zaawansowanego i bezpiecznego CMS'a.

Link do modułu: http://www.kadysz.e9.pl/tomek/
Link do źródła: http://www.kadysz.e9.pl/tomek/source.zip

Proszę o ocenę, krytykę i propozycje ewentualnych poprawek.
BTW. jeśli ktoś chciałby dołączyć do grona programistów generacjax.pl
proszę o kontakt. wszelkie dane podałem w temacie:
http://forum.php.pl/index.php?showtopic=38025


--------------------
filmy, filmy, muzyka, muzyka, gry, gry
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
Major
post
Post #2





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 22.07.2004

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


Tak na szybko:
Jak ustawi się najwyższy poziom błędu, to powinno polecieć pełno notticów(bledow).


--------------------
Udzielasz sie w PHP Pro?
Uważasz sie za profesjonaliste?
Przeczytaj to
Go to the top of the page
+Quote Post
bregovic
post
Post #3





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

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


Aby w pełni ocenić ten kod, dobrze byłoby wiedzieć czy ma działać na PHP4 czy PHP5.

Dwie ciekawych rzeczy:
  • Brak jakiegokolwiek (widocznego) zabezpieczenia zmiennych użytych w zapytaniu do bazy danych (linie 56, 66, 83) - wystarczy wpisać coś w adres i można żegnać się z bazą.
  • Użycie stałych (większość zapytań do bazy) - niekoniecznie błąd, lecz przy większych serwisach to idiotyzm.
Jeśli te zmienne są gdzieś tam zabezpieczone przed wysłaniem ich do bazy, i jakby usunąć te stałe, to kod byłby IMO ok.

Aczkolwiek nie jest to najwydajniejszy kod do wykonania tak prostej funkcjonalności (200+ linii kodu - przy użyciu odpowiednich nażędzi spoko możnaby to zrobić w 100 lub mniej (IMO)).

Trudno powiedzieć więcej nie widząc całości kodu.


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
bela
post
Post #4


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

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


Jak dla mnie OOD w całym CMS-ie jest nie poprawne, no bo czemu Newsy dziedziczą po Configu.

Poza tym jeśli to php 4, to powinny być znaczki & w argumentach metod.


--------------------
Go to the top of the page
+Quote Post
k_c2or
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.02.2003
Skąd: Białystok

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


Cytat(bregovic @ 2005-12-13 20:01:08)
Aby w pełni ocenić ten kod, dobrze byłoby wiedzieć czy ma działać na PHP4 czy PHP5.

ma działać na PHP4


--------------------
filmy, filmy, muzyka, muzyka, gry, gry
Go to the top of the page
+Quote Post
NuLL
post
Post #6





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


@k_c2or - temu kodowi sporo do doskonalosci - dosc szybko mozesz sie dorobic attackow typu sql_injection.


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
k_c2or
post
Post #7





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.02.2003
Skąd: Białystok

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


A co myślicie o takim kodzie?

Jest to wycinek modulu panelu adminitracyjnego, ktory zwraca kod HTML do szablonu. Layer do bazy obrabia odpowiednio dane w zaleznosci od typu.
Zależy mi na porównaniu dwóch tych wycinków (news powyżej i tego poniżej)
pod względem jakości kodu.

  1. <?php
  2.  
  3. class system_settings
  4. {
  5. private $lastSub='';
  6.  
  7. public function run($action)
  8. {
  9. $html='';
  10.  
  11. switch ($action)
  12. {
  13. default:
  14. case 'groups':
  15. $html=$this->groups();
  16. break;
  17.  
  18. case 'newgroup':
  19. $html=$this->newGroup();
  20. break;
  21.  
  22. case 'delete':
  23. $html=$this->delete();
  24. break;
  25. }
  26.  
  27. return $html;
  28. }
  29.  
  30. public function getName()
  31. {
  32. return "System settings";
  33. }
  34.  
  35. public function getSubName()
  36. {
  37. return $this->lastSub;
  38. }
  39.  
  40. private function newGroup()
  41. {
  42. $request=httpContext::instance()->request;
  43.  
  44. if($request->contains('group_name','group_key','group_description'))
  45. {
  46. $group_name=$request->map(POST,'group_name','',new stringCheck(3));
  47.  
  48. $group_key=$request->map(POST,'group_key','alphanumeric',new stringCheck(3));
  49.  
  50. $group_description=$request->map(POST,'group_description','string');
  51.  
  52. if($request->noErrors())
  53. {
  54. $db=db::instance();
  55.  
  56. $db->insert('settings_groups',array('gkey'=>$group_key,'name'=>$group_name,'description'=>$group_description));
  57.  
  58. if($db->affectedRows())
  59. {
  60. acpMessages::add(M_INFO,'New group has been successfully added.');
  61. return $this->groups();
  62. }
  63. }
  64. }
  65.  
  66. $form=new acpForm('Add new settings group');
  67.  
  68. $form->add(new textField('Group name*','group_name',''));
  69.  
  70. $form->add(new textarea('Group description','group_description',''));
  71.  
  72. $form->add(new textField('Group key*','group_key','','Needed when you want to access variable from specified group'));
  73.  
  74. $this->lastSub="New group";
  75.  
  76. return $form->fetch();
  77. }
  78.  
  79. private function groups()
  80. {
  81. $db=db::instance();
  82.  
  83. $groups=$db->getIterator("SELECT * FROM settings_groups");
  84.  
  85. $table=new acpTable('Groups',$groups);
  86.  
  87. $table->setActions('system/settings','sg_id',array('edit.gif'=>'edit/%ID%','delete.gif'=>'delete/%ID%'));
  88.  
  89. $table->setFields('name','description');
  90.  
  91. $table->setHeader('Name','Description','&nbsp;');
  92.  
  93. $this->lastSub="Groups";
  94.  
  95. return $table->fetch();
  96. }
  97.  
  98. private function delete()
  99. {
  100. $id=httpContext::instance()->request->map(GET,'3','int');
  101.  
  102. if($id>0)
  103. {
  104. $db=db::instance();
  105.  
  106. $count=$db->count('settings',array('sg'=>$id));
  107.  
  108. if($count>0)
  109. {
  110. acpMessages::add(M_WARNING,'Requested group must be empty before removing');
  111. }else
  112. {
  113. if($db->delete('settings_groups','sg_id='.$id))
  114. {
  115. acpMessages::add(M_INFO,'Group has been successfully removed.');
  116. }else
  117. {
  118. acpMessages::add(M_ERROR,'Failed to remove specified group.');
  119. }
  120. }
  121. }
  122. return $this->groups();
  123. }
  124. }
  125.  
  126. ?>


--------------------
filmy, filmy, muzyka, muzyka, gry, gry
Go to the top of the page
+Quote Post
sf
post
Post #8





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


A gdzie komentarze ;?


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
NuLL
post
Post #9





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


[OT]@sf - czego dot ten post ?[/OT]


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


@NuLL: chyba chodzilo o komentarze w kodzie.
Przydaly by sie bo mamy klasy system_settings, funkcje jak: groups() delete() run() i nie wiadomo (po ich nazwie i nazwie klasy) co maja robic.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Kinool
post
Post #11





Grupa: Zarejestrowani
Postów: 560
Pomógł: 0
Dołączył: 15.07.2003
Skąd: Kwidzyn

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


troche poza tematem ale ciekaw jestem jaka sawke za godzine lub za wykonana prace oferuje zleceniodawca, skoro chce wylonic najlepszego programiste jaki sie do niego zglosil, oczekuje pelnego profesionalizmu to mam nadzieje ze wynagrdzenie dla tego wybranca jest adekwatne do wymagan smile.gif ... ale to juz sprawa stron jak sie dogadaja smile.gif

teraz do nikogo nic nie przyklejam ale nizadko mozna sie spotkac z podjesciem typu "maximum za minimum" :/ do przyszlych "pracodawcow" mam taki maly apel smile.gif jezeli oczekujecie profesionalizmu to przygotujcie sie na profesionalna cene za usluge smile.gif


--------------------
Go to the top of the page
+Quote Post
ghostrider
post
Post #12





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 30.09.2005
Skąd: k-rk

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


jesli nad projektem ma pracowac kilku programistow, a tak mnie wyika z postu to nawet nie patrze na poprawnosc kodu jesli nie widze komentarzy.

Bez komentarzy skad jak mam wiedziec co toto ma robic, jak dzialac, co zwracac, jak podlaczyc do innego kawalka kodu. Na GG mam pytac kolegów miale wysyłać, paranoja!

kolega CHAOS zawita w progi takiego projektu w ciagu tygodnia. I z czegos co mialo byc szybkie, fajne itp, zrobi sie papka.

Mimio tego wszystkiego to drugi kod wyglada na lepszy gatunkowo (nie znaczy ze jest, nie studiowalem go), widac stosowanie wzorców


--------------------
There are 10 types of people in the world:
-Those who understand binary, and those who don't...
There's no place like 127.0.0.1
Go to the top of the page
+Quote Post
Major
post
Post #13





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 22.07.2004

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


Wg. mnie jest tworzonych za dużo obiektów. Jeden formularz = 4 obiekty?


--------------------
Udzielasz sie w PHP Pro?
Uważasz sie za profesjonaliste?
Przeczytaj to
Go to the top of the page
+Quote Post
k_c2or
post
Post #14





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.02.2003
Skąd: Białystok

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


Cytat(Kinool @ 2005-12-14 15:08:24)
troche poza tematem ale ciekaw jestem jaka sawke za godzine lub za wykonana prace oferuje zleceniodawca, skoro chce wylonic najlepszego programiste jaki sie do niego zglosil, oczekuje pelnego profesionalizmu (...)

Po pierwsze w ogłoszeniu podałem stawkę, więc Ci którzy się zgłosili jednoczesnie zgodzili się na taką a nie inną stawkę, to chyba proste i logiczne. Po drugie nie szukam pełnego profesjonalizmu a próbuję wyłonić najlepszego z tych, którzy się zgłosili. Bo przecież mogę zapłacić xxx komuś kto owszem pisze w php ale pisze na poziomie początkującego, a równie dobrze mogę zatrudnić kogoś kto jest profesjonalistą, pracuje gdzieś tam jako programista a tu chce sobie po prostu dorobić.


--------------------
filmy, filmy, muzyka, muzyka, gry, gry
Go to the top of the page
+Quote Post
Vengeance
post
Post #15





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


Cytat
* kwota max 3-cyfrowa.


To się nazywa "podanie stawki" ? rotfl.
Czyli płacisz max: 9.99 ;]


--------------------
Go to the top of the page
+Quote Post
k_c2or
post
Post #16





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 21.02.2003
Skąd: Białystok

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


Cytat(Vengeance @ 2005-12-15 16:50:34)
To się nazywa "podanie stawki" ? rotfl.
Czyli płacisz max: 9.99 ;]

nie, tzn. np. 999, ale nie więcej niż 1000 bo mnie po prostu na to nie stać...
durny komentarz z Twojej strony. chyba wiadomo o co chodzi...
jeśli ktoś chce to zrobić za 100, to zrobi to za 100, jak chce za to 999 to za tyle zrobi.
dobra.. niech będzie, że STAWKA: DO 1000PLN (czyt. tysiąca złotych)
lepiej?


--------------------
filmy, filmy, muzyka, muzyka, gry, gry
Go to the top of the page
+Quote Post
NuLL
post
Post #17





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


Starczy tego OT na troche winksmiley.jpg


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post

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 Aktualny czas: 20.08.2025 - 01:06