gówno rozwoju

Ostatnio pracuję głównie z kodem, a nie z kierowniczką, więc драмите z którymi się wyprostować z кодене znacznie więcej, niż serwerowych, takich, dlatego postanowiłem uderzył kilka wierszy bzdury, że mi z materiałami do. Intensywnie przygotowujemy przygotować swoje prezentacje projektów, które zmuszeni kilka otwieranie dramatycznych części

  • Първото нещо което което със сигурност щеше да създаде проблеми е изключването на javascript от браузърната поддръжка. Както всяка модерна апликация така и нашия инструмент използва доста JS за AJAX i innych dynamicznych procesów, które przekazują interaktywności i nowoczesnego poprawiają wzrok i funkcjonalność. Pomyśleliśmy, że najprawdopodobniej rozwiązanie jest jak najbardziej dopuszczalne była z ciasteczka z informacji, a następnie pzp upewnij się, że informacje są poprawne i czy wszystko jest w porządku. Jest bardzo mądrym rozwiązaniem, ale w końcu pojawił się jeszcze bardziej godny opcja. HTML co wykonywać, jeśli trafia w noscript. Moim zdaniem, jest to najbardziej eleganckie rozwiązanie.
<noscript>
<meta http-equiv="refresh" content="0;URL=./nojs.html" />
</noscript>

W ogóle sytuacja jest banalne, jeśli przestaniemy JS wsparcie będziemy przekierowany na nojs.html. Proste i bardzo skuteczne rozwiązanie

  • Php multhithreading – bardzo nishkovosta coś bardzo przydatne dla procesorów z bardziej podstawowego (że żaden wzór nie jest w PORZĄDKU, ale po wielu jądrowych systemów i inne rzeczy, piwo). Nasze oprogramowanie ma część, która zajmuje się zbieraniem informacji od innych API – . i jej importu, a następnie w naszej bazie danych. Общовзето w ogóle nie ma problemu poza tym, że to jego zrealizowali co najmniej na php z multhithreading w trybie cli, bo ten proces dosatachno ogromny i powinien być zautomatyzowany ważne dla knalgi ktoś robi to ręcznie. Tam był dramat, związany z фокрването procesów i stream nie z samego tworzenia child process-a że skrypt изчакваше, aby приключабота aby utworzyć nowy. Głupio to убиваше pomysł wieloprocesorowego, że w rzeczywistości zachowanie a nie multhithreading ale to szczegóły. Najpierw kładziemy & po procesie, który oznacza, aby kontynuować pracę, ale skrypt nadal nie było zmian w zachowaniu niezbędnych i standardowe wyjście skryptu być przekierowany – w moim przypadku najlepiej do /dev/null 🙂 Накрая структурата на тази част от кода изглеждаше така
$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
}else if ($pid) {
// we are the parent
echo "I'm parent  \n";
pcntl_wait($status); //Protect against Zombie children
} else {
// we are the child
echo "I'm a child $timer  \n";
exec("$command > /dev/null &");
exit (0);
}

Primercheto znowu banalne. От към производителност бях силно впечетлен със прекъсвани между вдигането на процесите и прочие направих около 50 child process-a които своя странба направиха 7800+ mysql inserts за около 30-40 сек. А машината е крайно хилава понеже ни е тестов върър преди да вдигнем приложението на реалния.

  • Mysql querysбях шокиран от една велика глупост. Имаше един код който правеше 4-5 излишни заявки към базата данни, вместо да се използва едно по тлъсто sql query и после основната работа да я отнесе php-то. Драмата беше такава, Większość- напред се правеше една заявка която взимаше информация после изхода от заявката се използваше да се направят други заявки като тя служеше за аргументи. Доста грозна и тлъста ситуация. Subquery а е непозната територия явно както и left join или просто не са били обмисляни нещата добре. Хванах пренаписах заявката всичко се получи доста добре и като цяло натоварването падна с около 200% за същата част от кода.

В общи линии това са нещата на последък с които се заниамваме и немога да кажа че е скучно но понякога се изумявам от разни необмисляни парчета код които трябва да поправям а най стеращното е че често са мои 😆

Wzmocnione przez Zemanta

2 Komentarze

  1. И аз имам тегления на данни, сложени в crontab-a. Пробвах преди със & в края, но ставаше пиково натоварване, грозна история. Сега съм ги оставил, като свърши единия процес, да пуска другия, но това е ужасТ :> Като зацикли някъде и всичко отива по дяволитетова го решавам като килвам старите процеси, като дойде време да се пуска новия, но това е още по-голям ужасТ, защото губя данни. Та ще се се опитам да имплементирам, твоето решене по този въпрос. Благодарско! 🙂

    1. Ами по моя метод хубавото е че информацията може да се обработва от няколко процеса едновременно но това също ти гарантира по голямо натоварване 😉 Баланса между натоварване и скорост винаги е много тънък. Всичко опира до тестове.

Zostaw odpowiedź

Twoj adres e-mail nie bedzie opublikowany. wymagane pola są zaznaczone *

anty spam *