PHP - trochę głębiej

0

Cześć, właśnie minął rok styczności z programowaniem, wiadomo to prawie co nic w porównaniu do innych, ale już te proste i średnie rzeczy potrafię zrobić, tutaj chciałbym zadać pytanie, jakie zagadnienia nie są tak napiętnowane jeśli chodzi o PHP i ogólnie o webdev, ale warto je wiedzieć, oto czego się nauczyłem wykorzystywać w praktyce:

PHP:
-Composer
-Laravel (eloquent - tutaj pozostaje praktyka aby wejść w to głębiej).
-PDO
-Obiektórka wzroce: Factory, Repository, Decorator, Singleton(znam słabe strony), Strategy, MVC, DI.
-Ciastka, sesje, parametry z konsolii, gettery i settery (kiedy stosować i czy warto metody magiczne), większość podstawowych funkcji.
-Podstawy podstaw testów w PHPUnit.
-Obecnie czytam dokumentację i staram się rozumieć każdą z funkcji.

Webdev:
-SQL podstawy (relacje, normalizacja)
-praktyczne wykorzystywanie JS'a
-praktyczne wykorzystywanie CSS'a (animacje, GRID itp).
-PSR'y - zwłaszcza 1, 2 i 4.
-Podstawy podstaw XDebug - wiem jak się nim posługiwać, ale brakuje obycia.
-Znajomość ataków XSS I SQL injection.

Ogólnie programowanie:
-Znajomość SOLID i przynajmniej 3 z nich w praktycznym stosowaniu.
-Znajomość DRY, KISS.

Moje cele?
Chciałbym w przyszłości być specjalistom języka PHP, bardzo interesuje mnie jego temat i cieszy mnie że nie jest tak trywialny i trzeba pomyśleć aby napisać DOBRY i CZYSTY kod.

0

Pokaż kod to zobaczymy na ile znasz SOLID w tych 3 zasadach. Bez urazy, ale projektowanie architektury i pisanie dobrego kodu po roku to trochę wyczyn, chocia może...
Z taką wiedzą możesz startować na juniora spokojnie. Tylko gita opanuj w podstawie w 2-3 dni i tyle.

0
Pabloss napisał(a):

Pokaż kod to zobaczymy na ile znasz SOLID w tych 3 zasadach. Bez urazy, ale projektowanie architektury i pisanie dobrego kodu po roku to trochę wyczyn, chocia może...
Z taką wiedzą możesz startować na juniora spokojnie. Tylko gita opanuj w podstawie w 2-3 dni i tyle.

Właśnie także się zastanawiam nad tymi SOLIDami i zdaje sobie sprawę że jeszcze nie stosuję ich w 100 procentach ale ciągle je ćwiczę, oglądam kody programistów, proszę o porady innych i co mogę to refaktoryzuję - tak więc na pewno staram się je stosować. Czy mógłbyś polecić Mi jakieś artykuły, których nie znajdę na pierwszych stronach google dotyczących SOLID'a ? Bo wszystkie te już "przelieciałem".
Co do stanowiska juniorskiego to byłem na 2 rozmowach w ostatnim miesięcu - głównie pod kątem obycia.

1

zapoznaj sie jeszcze z pisanie REST API oraz atakiem CSRF

0
mr_jaro napisał(a):

oraz atakiem CSRF

z tego co zaobserwowałem to większość frameworków php ma zabezpieczenie przed tym atakiem

0
Brunatny Kot napisał(a):
Pabloss napisał(a):

Pokaż kod to zobaczymy na ile znasz SOLID w tych 3 zasadach. Bez urazy, ale projektowanie architektury i pisanie dobrego kodu po roku to trochę wyczyn, chocia może...
Z taką wiedzą możesz startować na juniora spokojnie. Tylko gita opanuj w podstawie w 2-3 dni i tyle.

Właśnie także się zastanawiam nad tymi SOLIDami i zdaje sobie sprawę że jeszcze nie stosuję ich w 100 procentach ale ciągle je ćwiczę, oglądam kody programistów, proszę o porady innych i co mogę to refaktoryzuję - tak więc na pewno staram się je stosować. Czy mógłbyś polecić Mi jakieś artykuły, których nie znajdę na pierwszych stronach google dotyczących SOLID'a ? Bo wszystkie te już "przelieciałem".
Co do stanowiska juniorskiego to byłem na 2 rozmowach w ostatnim miesięcu - głównie pod kątem obycia.

Solid to w głównej mierze DDD a to łatwe nie jest.

z ciekawości, jakie pytania i zadania miałęś na rozmowach?

ma zabezpieczenia, ale warto znać na czym polega ten atak i jak się przed nim zabezpieczyć.

0
Pabloss napisał(a):
Brunatny Kot napisał(a):
Pabloss napisał(a):

Pokaż kod to zobaczymy na ile znasz SOLID w tych 3 zasadach. Bez urazy, ale projektowanie architektury i pisanie dobrego kodu po roku to trochę wyczyn, chocia może...
Z taką wiedzą możesz startować na juniora spokojnie. Tylko gita opanuj w podstawie w 2-3 dni i tyle.

Właśnie także się zastanawiam nad tymi SOLIDami i zdaje sobie sprawę że jeszcze nie stosuję ich w 100 procentach ale ciągle je ćwiczę, oglądam kody programistów, proszę o porady innych i co mogę to refaktoryzuję - tak więc na pewno staram się je stosować. Czy mógłbyś polecić Mi jakieś artykuły, których nie znajdę na pierwszych stronach google dotyczących SOLID'a ? Bo wszystkie te już "przelieciałem".
Co do stanowiska juniorskiego to byłem na 2 rozmowach w ostatnim miesięcu - głównie pod kątem obycia.

Solid to w głównej mierze DDD a to łatwe nie jest.

z ciekawości, jakie pytania i zadania miałęś na rozmowach?

ma zabezpieczenia, ale warto znać na czym polega ten atak i jak się przed nim zabezpieczyć.

Właśnie czytałem że DDD poznaje się w późniejszym okresie, zazwyczaj w pracy i jak jest taka potrzeba - w SH nie ma potrzeby, ale w korpo już warto.

Co do pytań na rozmowach:
-Czym jest sesja, na czym polega composer, czym są klasy anonimowe, jaki typ kolumny musi być aby odpowiednio przechowywać na przykład cenę produktu, czym jest normalizacja, rodzaje INNERÓW, jakie zmiany wprowadzono w wersji PHP 7, rodzaje ataków na strony, na czym polega DI, czy singleton to antywzorzec. A jako zadanie (przed rozmową) miałem prosty teścik, zrobić review kodu i napisać mail do klienta po angielsku.

0
Wielki Kura napisał(a):
mr_jaro napisał(a):

oraz atakiem CSRF

z tego co zaobserwowałem to większość frameworków php ma zabezpieczenie przed tym atakiem

Tak, nie lubię korzystać z czegoś czego działania nie znam. Laravel posiada takowe zabezpieczenia, wysyłany jest token przy formularzach aby identyfikować usera, widok zagnieżdzony jest w {{ }} i mniej bezpiecznych {!! !!} aby zapobiec przez XSS i bindowanie parametrów.

0

mnie to zastanawia jak przeżywają te goowno serwisy, np. na wordpress, hashowanie md5, zabezpieczenie komentarzy to zwykły error w oddzielnym pliczku php, walidacja mail tylko po stronie backendu a jakoś stoją i działają :)

0

Żeby dobrze realizować DDD potrzebna jest raczej jakaś praktyka. Tak żeby naturalnie i szybko wiedzieć co ma być w encji, co w usłudze, co w agregacie, do tego fabryki (zastępujące skomplikowane konstruktory klas), repozytoria (chociaż to właściwie jest realizowane przez ORMy)...

I tak praktycznie nigdy oprogramowanie nie będzie zgodne z ideałem DDD, zawsze można się do czegoś przyczepić przy wiekszym projekcie, ale i tak warto robić DDD, bo ułatwia to pracę. Nie ma sensu "kuć" teoretycznie DDD, żeby sobie gdzieś napisać, że się umie, bo brak praktyki szybko wyjdzie. Dzięki DDD program ma lepszą strukturę, łatwiej coś znaleźć w gąszczu setek elementów.

0
Wielki Kura napisał(a):

z tego co zaobserwowałem to większość frameworków php ma zabezpieczenie przed tym atakiem

Nie trzeba nawet frameworka, żeby zaimplementować takie zabezpieczenie, frameworki mają to tylko wbudowane.

https://stackoverflow.com/questions/6287903/how-to-properly-add-csrf-token-using-php

Czyli generujesz unikalny identyfikator, zapisujesz to do sesji a potem sprawdzasz odczytując to co się zapisało, można to oczywiście odświeżać po każdorazowym sprawdzeniu itd. Ale co do sprawdzania takich rzeczy i porównywania stringów w PHP to jeszcze warto by się zapoznać z tym:

http://php.net/manual/en/function.hash-equals.php
https://stackoverflow.com/questions/25844354/timing-attack-in-php

Na XSS to masz HTML Purifier i to instalujesz gdzieś jako Vendor. Są jeszcze ataki takie jak Session Fixation, Session Poisoning, Session Hijacking, dodatkowo dojdą jeszcze zagadnienia np. ochrony antyfloodowej, zabezpieczeń tego typu żeby ktoś nie użył np. iframe żeby tam wczytać jakąś zewnętrzną stronę i jeszcze wiele innych rzeczy ale z tym wszystkim można by sobie poradzić i bez frameworka :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1