[Klasa][PHP7] Prosta klasa do kilku operacji bitowych., "Dwuwartościowe przechowywanie" |
[Klasa][PHP7] Prosta klasa do kilku operacji bitowych., "Dwuwartościowe przechowywanie" |
21.02.2016, 17:40:15
Post
#1
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) |
class.Bits.php
class.Flags.php
Klasa jak widać prosta, zainspirowałem się do zrobienia jej po artykule nospor-a. (Dwuwartościowe przechowywanie) Oceniać można wszystko (nazewnictwo, co można by lepiej) itp. Przykłady użycia: Rejestracja Użytkownika
Gdy już mamy zarejestrowanego a chcemy np. Zaktualizować status online/spy:
Aby sprawdzić czy uzytkownik jest zalogowany:
Oczywiście klasę Flags trzeba dopasować pod swoje wymagania. @edit. Zmiana nazw klas na duże. Ten post edytował KsaR 21.02.2016, 21:05:37 -------------------- |
|
|
21.02.2016, 18:14:13
Post
#2
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
_BAN_ czemu taka konwencja?
I raczej już nazewnictwa plików tak klas się nie stosuje, a klasa z dużej litery. |
|
|
21.02.2016, 20:14:05
Post
#3
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) |
_BAN_ czemu taka konwencja? I raczej już nazewnictwa plików tak klas się nie stosuje, a klasa z dużej litery. Przy echo problem był (w edytorze lub w php już nie pamiętam) dlatego na szybko przedrostki dodałem na ewentualność) - co do nazw, dzięki, zaraz pozmieniam -------------------- |
|
|
21.02.2016, 20:49:18
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
const: https://github.com/php-fig/fig-standards/bl...md#41-constants
- Klasę Bits dałbym abstract, bo nie ma sensu robienie z niej instancji - if (NULL !== $bits) - Yoda Conditions? Nie używa się - metoda isset zmienił bym na has Warto dodać że min. wersja PHP 7.x Poza tym ok, nie ma za bardzo więcej co oceniać bo i nie wiele jest kodu |
|
|
21.02.2016, 20:50:00
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
problem z czym?
|
|
|
21.02.2016, 20:59:28
Post
#6
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) |
const: https://github.com/php-fig/fig-standards/bl...md#41-constants - Klasę Bits dałbym abstract, bo nie ma sensu robienie z niej instancji - if (NULL !== $bits) - Yoda Conditions? Nie używa się - metoda isset zmienił bym na has Warto dodać że min. wersja PHP 7.x Poza tym ok, nie ma za bardzo więcej co oceniać bo i nie wiele jest kodu Co do constant - nie rozumiem, co trzeba zmienić? Bits było na początku abstract ale na potrzeby forum skasowałem bo myślałem że źle ;p Yoda Conditions - ... Mikrooptymalizacja, zawsze tak robię, problemów z tym nigdy nie miałem.. Jak doczytałem problemy mogą byc tylko w np. ''=$x; jednak tak nigdy nie robiłem. Ps. PHP pierw sprawdza typ dlatego pierw typ potem ===. Nie wiem dlaczego to złe w moim przypadku, jakieś wyjaśnienie? Co do php7, jest w tytule [PHP7] od samego początku A klasa mała bo tylko do "wartości dwustanowych" Zaraz dodam abstract i zmienie isset na has, dzięki -- @com, chyba składnię mi źle podswietlało. A innej nazwy odchodzącej od echo nie mogłem zastosować bo tak mam w bazie danych, I w moim czacie (na gg) oznacza to czy ma odsylac wlasna wiadomosc wyslana na czacie czy nie Ten post edytował KsaR 21.02.2016, 21:04:16 -------------------- |
|
|
21.02.2016, 21:02:26
Post
#7
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
no formę jego zapisu trzeba zmienić.
Cytat Mikrooptymalizacja Faktycznie to dużo zmienia |
|
|
21.02.2016, 21:05:07
Post
#8
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) |
no formę jego zapisu trzeba zmienić. Faktycznie to dużo zmienia Ok, zaraz poprawie mi się zawsze w oczy poprostu rzuca jak jest na odwrót WordPress też tak ma;;; -------------------- |
|
|
21.02.2016, 21:07:01
Post
#9
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
no to czas na zmiany, nie stosuje się nazw zastrzeżonych, ECHO nie zdziała bo to to samo co echo
Nie ucz sie złych praktyk bo Yoda było kiedyś popularne bo ludzie nie rozróżniali = i == |
|
|
21.02.2016, 21:10:36
Post
#10
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) |
no to czas na zmiany, nie stosuje się nazw zastrzeżonych, ECHO nie zdziała bo to to samo co echo Nie ucz sie złych praktyk A mógłbyś jeszcze objaśnić czemu to złe? Bo nadal nic nie wiem, a do-googlować nic nie mogę. Cytat(https://make.wordpress.org/core/handbook/best-practices/coding-standards/php/) Yoda Conditions #
When doing logical comparisons, always put the variable on the right side, constants or literals on the left. In the above example, if you omit an equals sign (admit it, it happens even to the most seasoned of us), you?ll get a parse error, because you can?t assign to a constant like true. If the statement were the other way around ( $the_force = true ), the assignment would be perfectly valid, returning 1, causing the if statement to evaluate to true, and you could be chasing that bug for a while. A little bizarre, it is, to read. Get used to it, you will. This applies to ==, !=, ===, and !==. Yoda conditions for <, >, <= or >= are significantly more difficult to read and are best avoided. Edit. No to nie rozróżniali, a coś wiekszego przeciw temu? Tu z wordpressa jak widac tylko do operatorów wiekszosci/mniejszosci się doczepili Ten post edytował KsaR 21.02.2016, 21:14:39 -------------------- |
|
|
21.02.2016, 21:29:08
Post
#11
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
https://www.ibuildings.nl/blog/2016/01/prog...cing-complexity
Napisałem Ci poco się Yoda stosuje, to jest ominiecie problemów słabych programistów którzy popełniają trywialne błędy, zaciemniając czytelność kodu A wp to nie jest dobrym przykładem niczego A tak wgl to nie do tego był mój komentarz a do nazw stałych w tym co zacytowałeś |
|
|
21.02.2016, 21:33:42
Post
#12
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) |
https://www.ibuildings.nl/blog/2016/01/prog...cing-complexity Napisałem Ci poco się Yoda stosuje, to jest ominiecie problemów słabych programistów którzy popełniają trywialne błędy, zaciemniając czytelność kodu A wp to nie jest dobrym przykładem niczego A tak wgl to nie do tego był mój komentarz a do nazw stałych w tym co zacytowałeś No juz poprawione, ja nigdy nie mialem problemow z = ale znam osoby co zaczynaja z php (aktualnie) i mają ja tak jak pisalem mikro/makro-optymalizacja... Dla mnie tak czytelniej Gdzieś o tym było na potwierdzenie ale nie chce mi się googlowac - ale bylo ze php pierw sprawdza typ zmiennej (tak jak w ===) i jesli typ jest pierwszy to by jeszcze lepiej, ale skoro zle to zle, więc nie bede uzywal juz Co do komentarza to dodalem w odpowiedzi na "problem z czym?" Jednak oznaczylem "@com" - i tak 2 postow sie nie da pod rzad bo doda do 1 -------------------- |
|
|
21.02.2016, 21:35:01
Post
#13
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
to złego, że trzeba się zastanawiać nad takim kodem, czytamy od lewej do prawej a ludzie, którzy pracują z tym strasznym kodem wp, często popełniali błędy bo go się źle czyta, no to ktoś wpadł na pomysł użyjmy yoda to nam się kody wysypie to poprawimy błąd
|
|
|
21.02.2016, 21:37:22
Post
#14
|
|
Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) |
To cza by więcej Arabów zatrudnić, hehe
|
|
|
21.02.2016, 21:38:51
Post
#15
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
Tobie może się tak lepiej czytać ale ktoś kto odziedziczy kod może już nie być z tego zadowolony, na tym poziomie ta optymalizacja nie ma znaczenia a typ sprawdzany jest tylko przy ===, po to się stosuje 3 a nie 2 =
Ten post edytował com 21.02.2016, 21:39:41 |
|
|
27.02.2016, 21:33:53
Post
#16
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) |
Co do yoda conditions - jest ok, używa się, przykład z najnowszego symfony:
https://github.com/symfony/symfony/blob/mas.../Constraint.php |
|
|
27.02.2016, 21:39:08
Post
#17
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
@lukaskolista zobacz z którego roku są te commity 2014, 2010
|
|
|
28.02.2016, 14:44:49
Post
#18
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
lukaskolista
Yoda pojawia się w rożnych miejscach, ale nie znaczy, że to jest zalecana praktyka. https://github.com/zendframework/zend-diact...tTrait.php#L110 tu tez ja znajdziesz, ale to jest kwestia przyzwyczajenia konkretnego programisty który to stworzył, nie dobrych praktyk |
|
|
28.02.2016, 16:17:01
Post
#19
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) |
https://github.com/symfony/symfony/blob/mas...Yaml/Inline.php - commit sprzed 5 godzin.
Dodatkowo w żadnym PSR nic o tym nie ma, jakoś też w google nic nie mogę znaleźć na temat tego, żeby była to dobra czy zła praktyka. |
|
|
28.02.2016, 16:40:13
Post
#20
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
co z tego ze commit 5 h temu, kod się utrzymuje latami przecież, dałem linka do strony gdzie jest napisane na bazie książek uncle boba
|
|
|
Wersja Lo-Fi | Aktualny czas: 8.05.2024 - 07:11 |