Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak można to zoptymalizować, próbka kodu na rozmowę o pracę
damianooo
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


Witam,

Szukam obecnie pracy w webmasterce ... mam już pewne doświadczenie ale w tworzeniu kodu samodzielnie, ponieważ prowadziłem własną działalność gospodarczą. Teraz aplikując do pracy w dowolnej firmie okazuje się że występują pewne standardy w tworzeniu kodu - zaznaczam że nie dziwi mnie ten fakt wogóle ( jest to oczywiste dla mnie ).
Przejdę do rzeczy. Poniżej umieszczę jeden ze skryptów i prosiłbym o surową krytykę oraz o podpowiedzenie mi co można zmienić, poprawić, zoptymalizować w tym kodzie, czego się robić nie powinno itd. Będę serdecznie wdzięczny. Od razu zaznaczę że wiem iż kod css powinien być zawsze w innym pliku więc tej uwagi proszę nie zamieszczać (IMG:style_emoticons/default/smile.gif) ....

Kto najwięcej mi pomoże i najwięcej wymieni błędów dostanie status "Pomógł" (IMG:style_emoticons/default/smile.gif)

Poniżej podam też odpowiedź mailową od jednej z firm po obejrzeniu m.in. poniższego kodu:
"Przesłane próbki kodu nie spełniają jednak naszych oczekiwań i są raczej dalekie od naszych standardów. Nie stosuje Pan funkcji, wszystko jest napisane jednym ciągiem. Zamiast wykonać pętlę kopiuje Pan kod."

  1. <div style="float:left;padding:0;margin:0;height:20em;width:60em;">
  2.  
  3. <div style="float:left;padding:0;margin:0;height:20em;width:2em;">
  4. </div>
  5.  
  6. <div style="float:left;padding:0;margin:0;height:20em;width:56em;">
  7.  
  8. <?php
  9.  
  10. if(isset($_SESSION['nazwa']))
  11. {
  12. try
  13. {
  14. $sql_czyjuzjest = "SELECT count(*) as ile FROM test_specjalny.typ WHERE (id_gracz = ".$_SESSION['id'].") AND (id_kolejka = ".$numer_kolejka.")";
  15. $result_czyjuzjest = @mysql_query($sql_czyjuzjest);
  16. $row_czyjuzjest = @mysql_fetch_array($result_czyjuzjest);
  17. $czyjuzjest = $row_czyjuzjest['ile'];
  18.  
  19. if( $result_czyjuzjest === false )
  20. throw new Exception("błąd zapytania");
  21. }
  22. catch( Exception $e )
  23. {
  24. echo "&nbsp;chwilowo nie można wyświetlić danych ... ";
  25. }
  26.  
  27.  
  28. if($czyjuzjest != 0)
  29. {
  30. $infotyp = "<span style='color:black;font-size:x-small;'>STATUS - </span><span style='color:red;font-size:x-small;'>WYTYPOWAŁ</span>";
  31. }
  32. else
  33. {
  34. $infotyp = "<span style='color:black;font-size:x-small;'>STATUS - </span><span style='color:red;font-size:x-small;'>NIE TYPOWAŁ</span>";
  35. }
  36. }
  37. else
  38. {
  39. echo "";
  40. }
  41.  
  42.  
  43.  
  44.  
  45. if (!isset($_POST['submit']))
  46. {
  47. echo "<form action='ligatyperow.php?a=o' method='post'>";
  48.  
  49. $vcv = 1;
  50.  
  51. try
  52. {
  53. $sql_mecz = "SELECT id,gospodarz,gosc,opis,termin FROM test_specjalny.mecz WHERE (id_kolejka = 1) AND (status_m = 1) ORDER BY pozycja ASC";
  54. $result_mecz = @mysql_query($sql_mecz);
  55. while ($row_mecz = @mysql_fetch_array($result_mecz))
  56. {
  57. $id = $row_mecz['id'];
  58. $gospodarz_mecz = $row_mecz['gospodarz'];
  59. $gosc_mecz = $row_mecz['gosc'];
  60. $opis_mecz = $row_mecz['opis'];
  61. $termin_mecz = $row_mecz['termin'];
  62.  
  63. echo "<input type='hidden' name='idmecz[]' value='".$id."'>";
  64.  
  65.  
  66. echo "<span class='dd' >";
  67.  
  68.  
  69. if( $vcv % 2 )
  70. {
  71. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:56em;text-align:right;background-color:#a6a6a6;'>";
  72.  
  73. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:24.5em;text-align:right;'>";
  74. echo "<span style='font-size:x-small;'>(".$opis_mecz.")</span>&nbsp;&nbsp;".$gospodarz_mecz."";
  75. echo "</div>";
  76. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:1em;'>";
  77. echo "</div>";
  78. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:2em;'>";
  79. echo "<input type='text' name='gsp[]' maxlength='1' value='' dir='rtl' style='background-color:transparent;color:black;width:2em;'>";
  80. echo "</div>";
  81. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:1em;'>";
  82. echo "<img src='img/pileczka.png' alt='pileczka' />";
  83. echo "</div>";
  84. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:2em;'>";
  85. echo "<input type='text' name='gos[]' maxlength='1' value='' dir='ltr' style='background-color:transparent;color:black;width:2em;'>";
  86. echo "</div>";
  87. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:1em;'>";
  88. echo "</div>";
  89. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:24.5em;text-align:left;'>";
  90. echo "".$gosc_mecz."&nbsp;&nbsp;<span style='font-size:x-small;'>(".$termin_mecz.")</span>";
  91. echo "</div>";
  92.  
  93. echo "</div>";
  94. }
  95. else
  96. {
  97. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:56em;text-align:right;background-color:#e5e2df'>";
  98.  
  99. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:24.5em;text-align:right;'>";
  100. echo "<span style='font-size:x-small;'>(".$opis_mecz.")</span>&nbsp;&nbsp;".$gospodarz_mecz."";
  101. echo "</div>";
  102. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:1em;'>";
  103. echo "</div>";
  104. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:2em;'>";
  105. echo "<input type='text' name='gsp[]' maxlength='1' value='' dir='rtl' style='background-color:transparent;color:black;width:2em;'>";
  106. echo "</div>";
  107. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:1em;'>";
  108. echo "<img src='img/pileczka.png' alt='pileczka' />";
  109. echo "</div>";
  110. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:2em;'>";
  111. echo "<input type='text' name='gos[]' maxlength='1' value='' dir='ltr' style='background-color:transparent;color:black;width:2em;'>";
  112. echo "</div>";
  113. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:1em;'>";
  114. echo "</div>";
  115. echo "<div style='float:left;padding:0;margin:0;height:1.5em;width:24.5em;text-align:left;'>";
  116. echo "".$gosc_mecz."&nbsp;&nbsp;<span style='font-size:x-small;'>(".$termin_mecz.")</span>";
  117. echo "</div>";
  118.  
  119. echo "</div>";
  120. }
  121.  
  122. echo "</span>";
  123.  
  124. $vcv++;
  125. }
  126.  
  127. if( $result_mecz === false )
  128. throw new Exception("błąd zapytania");
  129. }
  130. catch( Exception $e )
  131. {
  132. echo "&nbsp;chwilowo nie można wyświetlić danych ... ";
  133. }
  134.  
  135. echo "<div style='float:left;padding:0;margin:0;width:56em;height:1.5em;text-align:right;'>";
  136. echo $infotyp;
  137. echo "</div>";
  138.  
  139. echo "<div style='float:left;padding:0;margin:0;width:56em;height:1.5em;text-align:right;'>";
  140.  
  141. if(isset($_SESSION['nazwa']))
  142. {
  143. echo "<input type='submit' name='submit' value='Typuję' style='width:6em;font-family:arial'>";
  144. }
  145. else
  146. {
  147. echo "<img src='img/typ_button.png' />";
  148. }
  149.  
  150. echo "</div>";
  151.  
  152.  
  153.  
  154.  
  155. echo "</form>";
  156.  
  157. }
  158. else
  159. {
  160. $liczbaRekordow = count($_POST['gsp']);
  161.  
  162.  
  163. if ($czyjuzjest != 0)
  164. {
  165. echo "<center>Uwaga! Już typowałeś w tej kolejce. <a href='ligatyperow.php?a=o' style='font-size:small;'>Powrót</a></center>";
  166. }
  167. else
  168. {
  169. for($i = 0; $i < $liczbaRekordow; $i++)
  170. {
  171. $mecz_01_01 = $_POST['idmecz'][$i];
  172. $mecz_02_01 = strip_tags($mecz_01_01);
  173. $mecz_03_01= trim($mecz_02_01);
  174. $mecz_04_01 = stripslashes($mecz_03_01);
  175. $mecz = htmlspecialchars($mecz_04_01, ENT_QUOTES);
  176.  
  177. $gsp_01_01 = $_POST['gsp'][$i];
  178. $gsp_02_01 = strip_tags($gsp_01_01);
  179. $gsp_03_01= trim($gsp_02_01);
  180. $gsp_04_01 = stripslashes($gsp_03_01);
  181. $gsp = htmlspecialchars($gsp_04_01, ENT_QUOTES);
  182.  
  183. $gos_01_01 = $_POST['gos'][$i];
  184. $gos_02_01 = strip_tags($gos_01_01);
  185. $gos_03_01= trim($gos_02_01);
  186. $gos_04_01 = stripslashes($gos_03_01);
  187. $gos = htmlspecialchars($gos_04_01, ENT_QUOTES);
  188.  
  189.  
  190. if (($gsp == '' ) OR ($gos == '' ))
  191. {
  192. echo "<center>Uwaga! Musisz wypełnić wszystkie pola. <a href='ligatyperow.php?a=o' style='font-size:small;'>Powrót</a></center>";
  193. }
  194. else
  195. {
  196. if ( ((preg_match('/^[0-9]$/D', $gsp)) != true) || ((preg_match('/^[0-9]$/D', $gos)) != true) )
  197. {
  198. echo "<center>Uwaga! W polach mogą pojawiać się tylko liczby. <a href='ligatyperow.php?a=o' style='font-size:small;'>Powrót</a></center>";
  199. }
  200. else
  201. {
  202. try
  203. {
  204. $sql = "INSERT INTO test_specjalny.typ (typ_gospodarz,typ_gosc,data_typ,id_mecz,id_gracz,id_kolejka) VALUE (".$gsp.",".$gos.",'".$data_typu."',".$mecz.",".$_SESSION['id'].",".$numer_kolejka.")";
  205. $wynik = @mysql_query($sql);
  206.  
  207. if( $wynik === false )
  208. throw new Exception("błąd zapytania");
  209. }
  210. catch( Exception $e )
  211. {
  212. echo "&nbsp;chwilowo nie można dodać danych ... ";
  213. }
  214.  
  215. header("Location:ligatyperow.php?a=o");
  216. }
  217. }
  218. }
  219. }
  220. }
  221.  
  222. ?>
  223.  
  224.  
  225. </div>
  226.  
  227. <div style="float:left;padding:0;margin:0;height:20em;width:2em;background-color:white;">
  228. </div>
  229.  
  230. </div>



dziękuję, pozdrawiam

Ten post edytował damianooo 19.06.2012, 11:14:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tehaha
post
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


Tu nie ma co optymalizować....Żadna normalna firma nie przyjmie takiego kodu, ponieważ jest trudny do zorientowania się i przez to, że wszystko jest razem namieszane, jakiekolwiek zmiany są ciężkie i bardzo czasochłonne, a w przypadku większych przeróbek prościej będzie skasować i napisać to od nowa, a czas to pieniądz.

Oprócz tego co napisał kolega wyżej:

1. Brak tutaj jakiejkolwiek architektury aplikacji, aplikacja powinna być podzielona na warstwy i rodzielać zadania na różne komponenty aplikacji
2. zamiast funkcji mysql_ lepiej jest używać PDO
3. kod html powinien być oddzielony od kodu php
4. to co jeszcze mnie osobiście odraża to polska nomenklatura, która zaburza czytelność kodu, kod php, html, css jest po angielsku więc całość jest czytelniejsza, jeśli stosujesz nomenklaturę angielską
5. Nielogiczne nazywanie zmiennych jak patrzę w kod to nie wiadomo o co chodzi z takimi zmiennymi :$gsp_01_01, $gos_02_01, $sql_czyjuzjest, zmienne powinny mieć proste symboliczne nazwy, które wskazują co to jest
6. Zbyt dużo niezorgranizowanych zmiennych, np. to co jest między linijkami 170-190, można by zorganizować w ładną tablicę wielowymiarową i uporządkować
7. Jeżeli chcesz się tym zająć na poważnie, to musisz nauczyć się programować obiektowo, jeżeli chcesz w miarę szybko podjąć pracę to opanuj jakiś framework, który już na starcie rozwiąże bardzo wiele kwestii, o któych nie masz pojęcia i narzuci Tobie architekturę aplikacji
8. Stosujesz różne standardy nazewnictwa zmiennych, raz camelCase, raz z podkreślnikiem, a czasami to nie wiadomo co, to powinno być ujednolicone
Go to the top of the page
+Quote Post

Posty w temacie
- damianooo   jak można to zoptymalizować   19.06.2012, 11:08:32
- - phpion   1. Nie stosuj @ przed funkcjami. W ten sposób tłum...   19.06.2012, 11:19:36
- - tehaha   Tu nie ma co optymalizować....Żadna normalna firma...   19.06.2012, 12:02:00
- - Adi32   Zaleciłbym jeszcze przeczytać krótki poradnik Włod...   19.06.2012, 12:06:55
|- - memory   [PHP] pobierz, plaintext $db->query("I...   19.06.2012, 15:15:49
- - !*!   damianooo - jeśli prowadziłeś własną działalność, ...   19.06.2012, 12:33:32
|- - phpion   Cytat(!*! @ 19.06.2012, 13:33...   19.06.2012, 13:00:06
- - Adi32   Cytat(!*! @ 19.06.2012, 13:33...   19.06.2012, 12:55:06
- - CuteOne   Poza tym co już koledzy napisali.. wysyłasz kod na...   19.06.2012, 13:10:41
- - !*!   To jedna z niepisanych praktyk, w przypadku: [PHP...   19.06.2012, 13:10:56
- - CuteOne   !*! co ma piernik do wiatraka? nie stosowa...   19.06.2012, 13:17:46
- - amii   Poprzednicy dobrze piszą ale nie pękaj gdyż załapa...   19.06.2012, 13:18:50
- - Adi32   Cytat(!*! @ 19.06.2012, 14:10...   19.06.2012, 13:34:05
- - d3ut3r   Co do kodu autora to dorzucę jeszcze niekonsekwenc...   19.06.2012, 13:38:44
- - !*!   Jeśli uznamy że niedawno zatrudniony młodszy koder...   19.06.2012, 13:45:11
- - Tuminure   CytatStosuj 3 lub 4 spacje, w edytorze zamiast tab...   19.06.2012, 14:01:39
- - markonix   Jeżeli zmienna jest nieprawdą. Jeżeli nieprawdą je...   19.06.2012, 14:04:33
- - damianooo   ok widzę że narzuciłem ciekawy temat do rozmowy .....   19.06.2012, 14:57:48
- - Mephistofeles   Cytatrównież każda taka szanująca się firma potraf...   19.06.2012, 15:38:37
- - tehaha   CytatJeśli chodzi o mój obiektowy to jest nieźle p...   19.06.2012, 16:05:56
- - xdev   1. Źle stosowane style. Po to są kaskadowe, żeby p...   19.06.2012, 22:05:53


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

 



RSS Aktualny czas: 18.10.2025 - 11:42