Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak można to zoptymalizować
Forum PHP.pl > Forum > PHP
damianooo
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ć smile.gif ....

Kto najwięcej mi pomoże i najwięcej wymieni błędów dostanie status "Pomógł" 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
phpion
1. Nie stosuj @ przed funkcjami. W ten sposób tłumisz ewentualne błędy, ale ich nie eliminujesz. Poza tym stosując @ skazujesz się na brak informacji o ewentualnych błędach.
2. Faktycznie sporo kodu powielasz. Najlepiej widać to w warunku if( $vcv % 2 ). Z tego co wiedzę kody w nim różnią się tylko definicją koloru. Mogłeś zatem podstawiać tylko różny kolor w zależności od tego, czy warunek jest spełniony czy nie.
3. Zdecyduj się na 1 styl nazewnictwa zmiennych: $gospodarz_mecz, $czyjuzjest, $liczbaRekordow.
4. Stosuj ' w miejsce " dla ciągów PHP. Między nimi jest subtelna różnica. Jaka? Poszukaj.
5. Masa stylów inline - ale prosiłeś by tego się nie czepiać.
6. Twój wynikowy kod HTML jest niepoprawny. Wartości atrybutów umieszczamy w ", a nie w '.
tehaha
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
Adi32
Zaleciłbym jeszcze przeczytać krótki poradnik Włodzimierza Gajdy na temat formatowania kodu.
http://gajdaw.pl/php/formatowanie-kodu-php/p1.html
Teoretycznie chodzi tylko o formatowanie PHP jednak wnioski można wywnioskować odnośnie co do chyba każdego języka i składni.

Edit:

Nie wiem jak to się ma do innych programistów i firm ale ja osobiście nie lubię tego:


  1. $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.")";
  2. $wynik = @mysql_query($sql);


Teraz wygląda to mniej więcej tak:


  1. $db->query("INSERT INTO
  2. test_specjalny.typ
  3. SET
  4. typ_gospodarz = '$gsp',
  5. typ_gosc = '$gos',
  6. data_typ = '$data_typu',
  7. id_mecz = '$mecz',
  8. id_gracz = '{$_SESSION['id']}',
  9. id_kolejka = '.$numer_kolejka'");


Ewentualnie z Doctrinem 1

  1. $oTS = new Model_TestSpecialny;
  2. $oTS->fromArray($new_test);
  3. $oTS->save();
!*!
damianooo - jeśli prowadziłeś własną działalność, współczuję każdemu kto był Twoim klientem, jeśli kod był w takim stanie.
Nie licz, że z czymś takim ktoś Cie przyjmie do pracy, to po prostu kawał solidnej amatorki, począwszy od html, skończywszy na PHP. Chyba że jako "przynieś, pozamiataj", ale nie jako koder.

Napisałeś

  1. echo "<a>";
  2. echo "<a>";


zamiast

  1. echo '<a> <a>';


Jest różnica między apostrofami, a cudzysłowem. Stosuj ten pierwszy, jeśli wyświetlasz tylko tekst.

Nie
  1. if( $result_mecz === false )


tylko

  1. if(false === $result_mecz)


Stosuj 3 lub 4 spacje, w edytorze zamiast tabulacji.
Adi32
Cytat(!*! @ 19.06.2012, 13:33:32 ) *
damianooo - jeśli prowadziłeś własną działalność, współczuję każdemu kto był Twoim klientem, jeśli kod był w takim stanie.
Nie licz, że z czymś takim ktoś Cie przyjmie do pracy, to po prostu kawał solidnej amatorki, począwszy od html, skończywszy na PHP. Chyba że jako "przynieś, pozamiataj", ale nie jako koder.


Różne firmy są... W mojej większość programistów tak pisze i nikt nie widzi w tym problemu. To nie dobrze jak szef nie ma pojęcie o programowaniu...
Heh, u mnie nie wiedzą co to preg_math...

Także nigdy nie wiadomo a na doszkalanie nigdy nie jest za późno...

Edit:
!*! dlaczego
Cytat
Cytat
if(false === $result_mecz)

zamiast
Cytat
if($result_mecz === false)

?
phpion
Cytat(!*! @ 19.06.2012, 13:33:32 ) *
Nie
  1. if( $result_mecz === false )


tylko

  1. if(false === $result_mecz)

Możesz podać uzasadnienie wraz z jakimś linkiem potwierdzającym? Z tego co pamiętam to tak naprawdę nie miało to żadnego znaczenia.
CuteOne
Poza tym co już koledzy napisali.. wysyłasz kod napisany strukturalnie, który z tego co widzę obsługuje zakłady bukmacherskie - dość kiepski wybór. Jeżeli zobaczysz w dziale Giełda wymagania stawiane przed programistami to prawie każdy wymaga znajomości OOP lub jakiegoś framework'a (a to się pośrednio wiąże ze znajomością OOP).

Na twoim miejscu:
- aplikował bym jako front-end developer
- w tym czasie doszlifował bym PHP
- w tym czasie zapoznał bym się z jakimś znanym frameworkiem np. Zend lub Kohana
- w tym czasie zapoznał bym się z wzorcami innymi niż MVC
- w tym czasie poznał bym inny język gdzie prawidłowo zaimplementowano OOP

I dopiero wtedy aplikował bym jako programista PHP tudzież webmaster
!*!
To jedna z niepisanych praktyk, w przypadku:

  1. if($text = true) // przejdzie bez problemu


  1. if(true = $text) // wywali błąd.


Oczywiście nie nadaje się zmiennej w warunku, ale tak samo jak nie używa się @ a mimo to ludzie to robią.
CuteOne
!*! co ma piernik do wiatraka? nie stosować if($text === true) bo jakiś współpracownik będzie myślał, że to przypisywanie zmiennej... ?

ps. przepraszam za spam
amii
Poprzednicy dobrze piszą ale nie pękaj gdyż załapanie obiektówki to dość trudna rzecz i nie chwyta się tego od razu, tak samo z frameworkami. Od siebie polecam ten materiał na temat wzorców projektowych (ale to na sam koniec jak już żeby zjesz na teorii OOP)
http://sourcemaking.com/design_patterns
Adi32
Cytat(!*! @ 19.06.2012, 14:10:56 ) *
To jedna z niepisanych praktyk, w przypadku:

  1. if($text = true) // przejdzie bez problemu


  1. if(true = $text) // wywali błąd.


Oczywiście nie nadaje się zmiennej w warunku, ale tak samo jak nie używa się @ a mimo to ludzie to robią.


Ja się nie zgodzę. Uważam, że nie ma to większego znaczenia ale dla jednolitości i żeby nie przekombinowywać należy używać

  1. if( $result_mecz === false )


Dlaczego nie nadaje się zmiennej w warunku?

  1. $a = null;
  2. if ($a = przypisz() and is_array($a)) {
  3. foreach ($a as $key => $value) {
  4. // itp.
  5. }
  6. }

Oczywiście pomijając funkcje typu strpos() i podobne, które mogą zwrócić false lub zero a warunek w obydwu przypadkach zwróci fałsz.

Przepraszam za offtop, jak widać niektórych zaintrygowały niektóre posty których nie byłoby sensu rozważać w dedykowanym temacie.
d3ut3r
Co do kodu autora to dorzucę jeszcze niekonsekwencję w strukturach raz używasz OR raz || po drugie skoro z jakichś kosmicznych przyczyn musisz wymieszać kod PHP
i html to nie rób pod sobą 50x echo 'coś tam z html'; tylko zamknij php znacznikiem ?> wyrzuć kod html i otwórz <?php

Cytat
Możesz podać uzasadnienie wraz z jakimś linkiem potwierdzającym? Z tego co pamiętam to tak naprawdę nie miało to żadnego znaczenia


znalazłem te strony jako przykład przed czym taka składnia może uchronić

http://www.theregister.co.uk/2003/11/07/li...ckdoor_blocked/

http://lkml.indiana.edu/hypermail/linux/ke...311.0/0635.html

Oczywiście takich błędów się nie powinno popełniać i tak naprawdę nie ma to wielkiego znaczenia ale jednak zapisanie tego na odwrót nie pozwoliło by skompilować kodu. Co nie zmienia faktu, że składnia true===$var wydaje mi się nienaturalna i raczej nie korzystam z niej.


!*!
Jeśli uznamy że niedawno zatrudniony młodszy koder jest idiotą, i wpisze coś takiego:

  1. $text = false;
  2.  
  3. if($text = true)
  4. {
  5. echo 'xxx';
  6. }
  7.  
  8. var_dump($text); // zwraca true


To skrypt działa dalej, bez błędów, ale działa źle.

  1. $text = false;
  2.  
  3. if(true = $text) // następuje zatrzymanie skryptu, błąd składni
  4. {
  5. echo 'xxx';
  6. }
  7.  
  8. var_dump($text);


To po prostu wygodne, jak się pracuje w grupie nad kodem który ma kilka tysięcy linijek, a kawa jest za słaba, to bez sensu zastanawiać się "gdzie jest błąd" skoro php nam to powie. To jest dokładnie tak samo jak z zamykaniem kodu znacznikiem ?> na końcu pliku. Każdy zrobi jak uważa, wedle własnej wygody pracy.
Tuminure
Cytat
Stosuj 3 lub 4 spacje, w edytorze zamiast tabulacji.

Albo raczej używaj edytora, który zamieni Twoją tabulację na spacje podczas kopiowania kodu na forum wink.gif.

Co do pisania...
  1. if(false === $result_mecz)
... !*! ma rację - przyzwyczajony do takiego zapisu programista, nic nie traci przez taki zapis, a zyskuje łatwiejsze odszukiwanie błędów. Jest to jednak tylko kropla w oceanie zwanym "złe praktyki". Zresztą taki zapis (co zresztą widać po wypowiedziach), może tylko skomplikować sytuację programićie, który nie jest przyzwyczajony do takiego zapisu.
Nie sądzę jednak aby to, czy piszemy if($var === false) zamiast if(false === $var) miało jakiś wpływ na przyjęcie do pracy wink.gif.

Tak swoją drogą - takie pytanie do autora... można wiedzieć, jakich zarobków oczekujesz?
markonix
Jeżeli zmienna jest nieprawdą.
Jeżeli nieprawdą jest zmienna.
Pierwsze zdanie wydaje mi się bardziej naturalne, osobiście wole zacząć od zmiennej.

Próbka kodu może być na dowolny temat?
damianooo
ok widzę że narzuciłem ciekawy temat do rozmowy ...

najpierw odpowiem na dwa pytania:
1) tak próbka kodu może być na dowolny temat
2) oczekuję zarobków 2500-3000 zł netto
3) apropo Takiego szefa, który tak programuje - była to firma jednoosobowa, więc byłem sam sobie szefem ... ambicji bycia szefem na razie nie mam, a jak będę to napewno nie z taką wiedzą, więc mam świadomość

Apropo odpowiedzi nr. 2 dotyczącej oczekiwanych przeze mnie zarobków to mam świadomość, że z taką próbką kodu i z taką wiedzą programowania w PHP żadna szanująca się firma mnie nie zatrudni, wyśmieje itd. ... ale ... również każda taka szanująca się firma potrafi wziąć pod uwagę, że taki kandydat może nie mieć doświadczenia w pracy właśnie w większej firmie gdzie kod jest tak ładnie poukładany, przez co nie ma nawet pojęcia że takie standardy obowiązują .. i teraz ... ma dwa wyjścia:
1) zatrudnić i przeszkolić/nauczyć jak się powinno programować jeżeli widzi że kandydat jest bardzo ambitny i chce się czegoś nowego nauczyć
2) podziękować
A więc zależy gdzie trafisz na rozmowę ... ważne żeby chcieć zmienić nawyki i chcieć się nauczyć czegoś nowego ... ważne czy chce się być bardzo dobrym programistą .. ja takim chcę być i dlatego zamierzam jak najszybciej poprawić wszystkie swoje błędy ...
każdy przecież z nas kiedyś zaczynał i nie od razu wiedział o tym wszystkim o czym tutaj teraz piszemy ... to że prowadziłem działalność gospodarczą i wykonywałem aplikacje w taki sposób jak widać, nie znaczy przecież że aplikacje działały źle, wolno itd. powiem krótko ... działały bardzo dobrze ... dodam - aplikacje nie były duże ... dziękuje tutaj jednemu koledze za pocieszenie że w firmach zdarzają się tacy jeszcze programiści ponieważ po dzisiejszej krytyce myślałem że zapadnę się pod ziemię ... ale oczywiście dziękuję za wszystkie uwagi ...
Jeśli chodzi o mój obiektowy to jest nieźle ponieważ na studiach w różnych językach programowaliśmy obiektowo ... jednak jakoś tak wyszło że w PHP zostałem przy strukturalnym .. zawsze jednak chciałem to zmienić i pierwszym krokiem miało być właśnie zatrudnienie w jakiejść firmie gdzie wszystkie dobre nawyki by mi pokazali ...
memory
  1. $db->query("INSERT INTO
  2. test_specjalny.typ
  3. SET
  4. typ_gospodarz = '$gsp',
  5. typ_gosc = '$gos',
  6. data_typ = '$data_typu',
  7. id_mecz = '$mecz',
  8. id_gracz = '{$_SESSION['id']}',
  9. id_kolejka = '.$numer_kolejka'");


w mssql Set nie przejdzie
Mephistofeles
Cytat
również każda taka szanująca się firma potrafi wziąć pod uwagę, że taki kandydat może nie mieć doświadczenia w pracy właśnie w większej firmie gdzie kod jest tak ładnie poukładany, przez co nie ma nawet pojęcia że takie standardy obowiązują

Bzdura, nawet średnio doświadczony amator piszący tylko dla siebie przestrzega pewnych standardów, w przeciwnym wypadku kodu po prostu nie da się później czytać!
Od nauki czytelnego programowania są frameworki, które wymuszają jakąś konwencję pisania, przez co dużo trudniej jest to zrobić źle.
tehaha
Cytat
Jeśli chodzi o mój obiektowy to jest nieźle ponieważ na studiach w różnych językach programowaliśmy obiektowo
To, że się dowiedziałeś co to klasa, metoda i konstruktor to nie znaczy, że się nauczyłeś programować obiektowo. Napisać aplikację tak, aby była łatwa do rozbudowy i żeby jej elementy można było wykorzystywać w następnych projektach to bardzo trudna sprawa. Na studiach nie uczą programowania, zostałeś tylko wprowadzony w bardzo podstawowe pojęcia. Programować muisz się nauczyć na własną rękę.

Cytat
każdy przecież z nas kiedyś zaczynał i nie od razu wiedział o tym wszystkim o czym tutaj teraz piszemy ... to że prowadziłem działalność gospodarczą i wykonywałem aplikacje w taki sposób jak widać, nie znaczy przecież że aplikacje działały źle, wolno itd. powiem krótko ... działały bardzo dobrze ... dodam - aplikacje nie były duże
No wiadomo, ale to od Ciebie zależy czy stale zwiększasz swój poziom i jakość usługi czy cały czas robisz to amatorsko i w taki sam sposób. Przy małych stronkach to tam wszystko jedno ale jeśli w taki sposób napiszesz duży serwis, który miałby być stale rozwijany to jak za pół roku miałbyś go rozbudować i podmienić grafikę na nową to byś sobie w łeb strzelił. Przy małych projektach typu zrób i zapomnij nie zderzyłeś się z konsekwencjami i wadami takiego stylu. Dlatego porządne firmy nie przyjmą nikogo z takim stylem pisania. Ponadto jeżeli nie wykształcisz sobie prawdziwych umiejętności, a praca w firmie wcale tego nie gwarantuje, to będzie Ciebie można łatwo zaśąpić i z wiekiem co raz trudniej będzie Ci znaleźć pracę, bo samo doświadczenie bez umiejętności jest nic nie warte.


xdev
1. Źle stosowane style. Po to są kaskadowe, żeby przy każdym elemencie nie pisać tego samego.
2. Escape się robi przed kwerendą SQL, podatność na SQL-injection.
3. Mieszasz PHP z HTML-em.
4. Jak wyrzucasz exception z komunikatem błędu to wyświetl ten komunikat (errorMessage) i już a nie dubluj 2 razy tego samego.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.