PHP — это динамически неявно слабо типизированный язык.
Динамическая типизация может быть очень полезна во многих случаях, да и в целом она сильно упрощает жизнь, поскольку вы концентрируетесь на значениях и не думаете о том, какого они типа.
Я, как и многие PHP-программисты, думал, что статическая типизация — это «сложность».
Это ограничивает гибкость и вообще: как люди с этим работают? И я искренне не понимал, почему многие опытные программисты предпочитают языки со статической типизацией и строгой проверкой типов.
Я принадлежал к правой половине людей, которые мало знают о типах, но при этом искренне считают, что это не удобно.
И так было до тех пор, пока я близко не познакомился с одним из строго типизированных языков (C#).
С тех пор мое отношение к PHP и программированию в целом изменилось.
«Титанам» программирования эта статья вряд ли заинтересует, потому что ничего революционного или нового вы здесь не найдете, а всем остальным, заинтересованным в улучшении своего кода и собственной производительности, добро пожаловать под кат. Для начала давайте определим, что такое статическая типизация: Статическая типизация определяется тем фактом, что окончательные типы переменных и функций устанавливаются во время компиляции.
Те.
компилятор уже на 100% уверен, какой тип где находится.
В php у нас нет компилятора, и все типы в любом случае будут рассчитываться во время выполнения, но это не мешает нам самим строго следить за ними, придерживаясь определенных правил.
Зачем все это нужно в PHP?
Изучая C# и одновременно осваивая продукт, для которого ставились задачи, не имея достаточного опыта и документации (вернее, документации вообще не было), мне помогло то, что благодаря строгой типизации большинство ошибки устранялись немедленно, а еще большим преимуществом были подсказки IDE, выдаваемые на основе заданных типов.Мне не нужна была документация, чтобы понять, что и куда передавать, я не мог сделать ничего неправильного, оно просто не компилировалось! Это значительно сократило время, поскольку вы сразу видите, что этот метод принимает только такие параметры, и создавая объекты для этих параметров, вы узнаете, каких ссылок не хватает для их построения и так далее.
«Окей, это действительно удобно, — скажете вы, — но вы же нам ничего нового не сказали, в PHP есть PHPDoc, который понимает большинство современных IDE, а также помогает писать код на лету!» Всё верно, но чтобы это работало так же, как и в статически типизированных языках, необходимо не только написать комментарий для каждого метода и свойства класса, но важно, чтобы вся архитектура была адаптирована для работы с ранее известными объектами.
Чтобы построить такую архитектуру, нужно придерживаться определенных правил.
Это те, о которых я хотел бы поговорить дальше.
Используйте объекты вместо массивов
Да, точно.В общем, эта истина не нова и о ней много написано: объекты легче расширять, к ним легче добавлять методы и вообще дорога к ООП.
Но я хочу посмотреть на этот вопрос с другой стороны — с точки зрения построения правильной архитектуры для эффективного программирования.
Давайте посмотрим на простой пример: Допустим, в системе происходит событие, и нам необходимо передать обработчику определенные параметры.
Для этого мы используем массив:
Теги: #php #phpdoc #эффективность #печать #SPL #php$eventData = array(
-
Отображать Gmail Только В Формате Html
19 Oct, 24 -
Дайджест: Технологии Дпи И Оборудование Сорм
19 Oct, 24 -
Конкурсы Инди-Игр: 12 Советов Разработчикам
19 Oct, 24