Rozważam stworzenie aplikacji internetowej z Node.js. Pochodzę z tła PHP, w którym nie korzystałem z silnika szablonów (poza samym PHP) i zawsze pisałem prosto HTML. Dlaczego więc nie powinienem używać Jade lub innego silnika szablonów?Jakie są plusy i minusy używania silnika szablonu, takiego jak Jade?
Odpowiedz
Plusy:
- zachęca dobra organizacja kod (generacja danych jest oddzielony od kodu prezentacji)
- generacji wyjściowy jest bardziej wyraziste (składnia szablon nie wymaga morze łańcuchów znaków)
- Better produktywność (typowe problemy, takie jak kodowanie wyjściowe, iteracja, warunki itp.) zostały obsłużone)
- Generalnie wymaga mniej ogólnego kodu (w szczególności jade ma bardzo zwięzłą składnię)
Wady:
- Niektóre napowietrznych wydajność
- Jeszcze inną rzeczą, aby dowiedzieć się
Co to jest "obciążenie związane z wydajnością"? Czy sugerujesz, że możesz dynamicznie generować HTML, który jest szybszy niż silnik szablonowy? – Raynos
Absolutnie. Zawsze szybciej będzie zrobić coś takiego jak 'res.write ('
' + pageTitle + '
');', vs. 'res.render ('title-template', {title: pageTitle});' (in Wyrazić). W większości przypadków obciążenie związane z wydajnością jest jednak znikome. Jeśli jadeit (lub inny silnik szablonowy) jest wąskim gardłem, robisz całkiem nieźle wszystko. – jmar777Dotyczy to wyłącznie szablonów opatentowanych. Każdy poważny szablon będzie szybszy w przypadku mechanizmu szablonowego z powodu buforowania. – Raynos
O JADE lub jakikolwiek inny język szablonów, które różnią się wiele od HTML:
Przede wszystkim debugowanie utworzonego kodu HTML zajmuje więcej czasu. Widzisz HTML w przeglądarce i musisz przetworzyć go z powrotem do JADE (w mózgu), aby porównać z treścią twojego edytora. Jest to bardzo niewygodne i sprawia, że debugowanie jest trudniejsze niż powinno.
Oczywiście może to nie być problem, jeśli jesteś jedynym programistą, który pracuje nad kodem. Może się wydawać, że łatwo dopasować linie html do linii JADE, jeśli jesteś tym, który je napisał.
Jest to problem podczas pracy w zespołach.
- 1. Jakie są plusy i minusy używania zmiennych rozgłoszeniowych w singleton?
- 2. Jakie są plusy i minusy używania `select table_name. *`?
- 3. Jakie są plusy i minusy modelowania kotwicy?
- 4. Plusy i minusy READ_COMMITTED_SNAPSHOT
- 5. Jakie są plusy i minusy Git-Flow vs Github-Flow?
- 6. newid() vs newsequentialid() Jakie są różnice/plusy i minusy?
- 7. OcMock vs OcMockito - jakie są plusy i minusy
- 8. Jakie są twoje plusy i minusy git po użyciu?
- 9. Jakie są plusy i minusy RemObjects PascalScript kontra skrypt DWS?
- 10. Jakie są plusy i minusy LinkedHashMaps vs. LinkedHashSets?
- 11. Jakie są plusy i minusy podstawowego uwierzytelniania HTTP
- 12. Jakie są plusy i minusy używania matryc, kątów Eulera i/lub kwateranów do reprezentacji rotacji?
- 13. ServiceBus Architektura Plusy i minusy
- 14. Jakie są plusy i minusy używania jednego lub wielu DbContext z EF?
- 15. SELECT * - plusy/minusy
- 16. Microsoft pyta: Lista pojedyncza lub podwójna? Jakie są plusy i minusy używania każdego z nich?
- 17. Jakie są plusy i minusy używania bazy danych dla IPC do udostępniania danych zamiast przekazywania wiadomości?
- 18. Jakie są plusy i minusy używania XML do przesyłania danych w tym programie Java?
- 19. Plusy i minusy silnika bazy danych Access. Życie po SQLite
- 20. Jakie są plusy i minusy używania configChanges = "orientacja" dla urządzeń z systemem Android?
- 21. Jakie są plusy i minusy używania VARCHAR vs TEXT do przechowywania małych dokumentów XML w MySQL?
- 22. Pliki mapowane w pamięci: plusy i minusy?
- 23. Plusy i minusy używania Lucene w klasie MultiSearcher
- 24. Wypoczynek vs Wcf plusy i minusy
- 25. Plusy i minusy: Hibernacja vs. EJB 3
- 26. GLib v APR plusy i minusy każdego
- 27. plusy i minusy db i ndb w silniku aplikacji Google
- 28. SparkSQL vs Hive on Spark - Różnice i plusy i minusy?
- 29. Programowanie w wirtualnej maszynie - plusy i minusy
- 30. Proxyquire, ReWire, SandboxedModule i Sinon: plusy i minusy
Użyłeś języka szablonowego, PHP to jeden. – Raynos
Dobrze, dlatego powiedziałem "oprócz samego PHP". –