![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 1 Dołączył: 24.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
W koncu znalazlem troche czasu aby dokonczyc wstepna wersje wlasnej implementacji loggera, ktora pragne sie z Wami podzielic. Jak zwykle licze na konstruktywna krytyke, a jednoczesnie chcialbym takze zapytac bardziej doswiadczonych PHP-owcow o jeden detal. Mianowicie wywolanie date('u'); zwraca same zera zamiast mikrosekund. Udalo sie moze komus to naprawic? Kod do wgladu: http://wklej.org/hash/b0997746849/ |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Cytat to moim zdaniem gorzej byc nie moze Ktoś może mieć inne zdanie, dlatego są różne poziomy i w danym systemie dla danego zdarzenia przyjmujesz określony poziom. Cytat Chyba, ze caly serwer padnie, ale wtedy ten emergency na nic Ci sie nie przyda. Co jeśli mam wiele serwerów? Cytat Poza tym jezeli zatrzyma sie baza danych, to notyfikacja powinna przyjsc z innego zrodla. Nie rozumiem, np. z jakiego źródła jak nie ze skryptu? Cytat Nie ma wiec sensu bezmyslnie podazac za wszystkimi trendami i standardami. Za trendami to masz rację, że nie warto bezmyślnie podążać. Natomiast trend a standard to kompletnie różne rzeczy. Pewnie przestrzenie nazw to też jakiś dziwny standard, ale niekorzystanie z niego prowadzi do takich kwiatków: Jeszcze w kwestii bezmyślnego podążania, to kopiowanie bibliotek też się w to wlicza? Twój kawałek kodu moim zdaniem zbyt mocno przypomina inny. Stałe jak QEVENT_WARNING zdefiniowałbym w zasięgu klasy. Statyczne zależności i magiczne stałe. Abstrakcyjna klasa z pustym konstruktorem i destruktorem. Kod ogólnie trudny do rozbudowy i to chyba największa wada. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 1 Dołączył: 24.12.2013 Ostrzeżenie: (0%) ![]() ![]() |
Za trendami to masz rację, że nie warto bezmyślnie podążać. Natomiast trend a standard to kompletnie różne rzeczy. Pewnie przestrzenie nazw to też jakiś dziwny standard, ale niekorzystanie z niego prowadzi do takich kwiatków: Bardzo chetnie dowiem sie, jak to powinno zostac zaimplementowane wg Ciebie. Jezeli masz jakis przyklad, albo chwile aby zaprezentowac fragment kodu, bede wdzieczny. Pomijając już sam fakt iż piszesz na serwerze z php7, a nawet przestrzeni nazw z 5.3 nie stosujesz, to powinieneś stosować się do standardu, po to abym jak zechcę mógł Twoją implementację zamienić na np monolog, jeśli stwierdzę, że akurat jego potrzebuję. System nie powinien zależeć od konkretnej implementacji... Owszem korzystam z PHP7, co nie nakazuje mi w zaden sposob korzystac ze wszystkich dobrodziejstw jakie oferuje najnowsza wersja. PHP jest kompatybilne wstecz w pewnym zakresie, wiec aplikacje ktora wymaga min. PHP5 w teorii da sie uruchomic na PHP7 (ew. po pewnych poprawkach). Z najnowszej wersji interpretera korzystam, bo taka jest oferowana jako stabilna w dystrybucji z ktorej korzystam (tak mam Linuksa). Strata czasu byloby maskowac nowa wersje i robic downgrade, w szczegolnosci ze siodemka jest zdecydowanie szybsza. A wymyślanie koła na nowo mija się z celem. "Wszyscy wiedzą, że czegoś nie da się zrobić, aż znajduje się taki jeden, który nie wie, że się nie da, i on to robi." A co jeśli jestem programistą i nie interesuje mnie nic poza moją aplikacją? Utrzymywaniem infrastruktury zajmuje się kto inny. Ja chcę wiedzieć czy moja aplikacja zepsuła się i mam coś do naprawy czy nie. Poza tym uczepiłeś się jednego przykładu dla tego poziomu. Rozumiem, ale jak padnie baza danych, to raczej nie Ty bedziesz to naprawial. Jak slusznie zauwazyles kto inny zajmuje sie utrzymywaniem infrastruktury. Osoba taka powinna otrzymac powiadomienie z monitoringu, ze baza danych jest nieosiagalna. Owszem, taki problem powinien zostac zalogowany w samej aplikacji, w szczegolnosci jezeli baza jest dostepna a przykladowo rozsypala sie jakas tabela. Wtedy administratorzy z duza doza prawdopodobienstwa nie otzymaja zadnej notyfikacji, a o zaistnialym problemie dowiedza sie od Ciebie. Co nie zmienia faktu, ze jezeli cos krytycznego stalo sie po stronie aplikacji to w dalszym ciagu jest to alert. A samemu logowaniu aplikacji nie mozna zawierzyc, bo co w sytuacji gdy taka aplikacja nam coredumpuje, albo kiedy wywroci sie serwer www? Wtedy aplikacja bedzie niedostepna, mamy totalny f***up i z zadnych logow aplikacji sie o tym nie dowiesz. Właśnie rozróżniam. Skrypt nie może połączyć się z bazą. Może baza padła, albo admin zmienił jej adres? Efekt jest taki, że nie działa aplikacja i ja chcę o tym wiedzieć. Komunikat z klastra nic mi nie mówi bo się na tym mogę nie znać. I w tym wypadku dostaniesz alert. A jezeli problem lezy po stronie infrastruktury, to i admin powinien dostac stosowne powiadomienie. Niczego Ci nie zarzucam tylko opisuję istniejącą sytuację. Po prostu nie korzystasz z przestrzeni nazw i tyle, a to moim zdaniem błąd i to krytykuję (o co zresztą sam prosiłeś). Jaki jest związek między używaniem PN a kopiowaniem cudzej biblioteki nie podając źródła? Wielu programistów korzysta z PN i nie kopiują innych bibliotek. Nie chce sie klocic, ani wymadrzac. Nie to jest moim celem. Popelnilem fragment kodu i jestem wdzieczny za krytyke. Rozumiem, ze jako programista masz odmienne zdanie co do samej idei. Ja programistom nie jestem, malo tego za moich czasow czlowiek programowac uczyl sie jeszcze w pascalu, ktory niewiele ma juz wspolnego z dzisiejszymi standardami. Na codzien pracuje w IT, ale zajmuje sie czyms zupelnie innym, dlatego pewnie takze moje podejscie do pewnych problemow jest z gola odmienne. Jezeli chodzi o przestrzenie nazw, to rozumiem zauwazony problem i jak bede mial wolna chwile, postaram sie je wdrozyc. Nie rozumiem natomiast, co wg Ciebie skopiowalem? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 22:58 |