Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Co se PHP programátor může naučit od Javy?

Co se PHP programátor může naučit od Javy?

Filip Procházka

October 28, 2017
Tweet

More Decks by Filip Procházka

Other Decks in Technology

Transcript

  1. Návrhové vzory jsou super • Decorator • Strategy • Visitor

    • Builder • Factory • BuilderFactory ❤ • FactoryBuilderFactory ❤❤ • BuilderFactoryBuilderFactory ❤❤❤
  2. “Patterns always have two parts: the how and the when.

    Not just do you need to know how to implement them, you also have to know when to use them and when to leave them alone.” ~ Martin Fowler
  3. • Premature abstraction • Premature optimalization • … • Nejprve

    “nahrubo” • Dodržovat základní pravidla • Po pochopení refaktoring YAGNI
  4. Don’t reinvent the wheel: Hotová řešení • Frameworky ◦ Spring

    vs Nette vs Symfony • Knihovny ◦ Hibernate vs Doctrine • Články • Nástroje • ….
  5. Don’t reinvent the wheel: Standardy • JSR 354: Money and

    Currency API ◦ https://github.com/brick/money • JSR 310: Date and Time API ◦ https://github.com/brick/date-time
  6. Silné typy: array • Std lib + Generika ◦ Map<LocalDate,

    List<LocalTime>> ◦ LinkedList vs ArrayList ◦ HashMap vs TreeMap • PHPDoc ◦ Příklady v PHPStan testech /** @var Collection|Dolor[] */ private $dolors;
  7. Value objects • PHP nemá Time ani Date, má Datetime

    ◦ Můžu si napsat vlastní ◦ Nebo můžu použít Brick! :) • EmailAddress • PhoneNumber • Url (Nette) • DateRange, TimeRange, NumberRange • PostalAddress ◦ Může a nemusí být VO
  8. Value objects: vlastnosti • Rovnost ◦ == vs === vs

    equals() • Validita • Immutabilita • VO != DTO