Pull to refresh

Как читать код

Level of difficultyEasy
Reading time3 min
Views16K

Моя самая большая мечта при смене работы: узнать все о проекте самостоятельно. Не задать ни одного вопроса, а просто потратить немного времени на изучение материалов.

Я стремлюсь к ней. И если готовых материалов на проекте может не быть, то код есть всегда. Поэтому я читаю код.

Я не разработчик. Я прихожу иногда на проекты с языками программирования, которых совсем не знаю. Но оказалось, что разобраться в синтаксисе любого языка за пару дней совсем несложно. Давайте попробуем на примере PHP, потому что именно PHP я встретила впервые совсем недавно.

С чего начать

Все же знают разницу между фреймворком, библиотекой и языком программирования? Я предпочитаю начать изучать репозиторий с кодом с документации фреймворка, на котором он написан. В моем случае это Laravel.

Как читать документацию

  1. Начните с прочтения оглавления. Может оказаться, что похожие сущности вы уже встречали в других фреймворках.

    Если в оглавлении нет ни одного знакомого слова, ничего страшного. Уверена, что вы сможете разобраться после прочтения самих страниц.

  2. Прочитайте разделы Введение или Начало работы. Такие разделы дадут вам общее представление о фреймворке.

  3. Если у вас появились или уже были более конкретные вопросы, то не бойтесь открыть соответствующий раздел и прочитать его тоже. Знания лишними не бывают.

Скорость чтения взрослого человека — примерно 200 слов в минуту. Даже если кажется, что на странице много текста, поверьте, обычно прочтение не занимает больше 5-7 минут.

Для меня было интересно, что в Laravel многие действия происходят через фасады. Я очень многое узнала про логирование и тестирование в Laravel. Я узнала про организацию папок в репозитории.

Благодаря еще и хорошему неймингу на нашем проекте, теперь я легко разбираюсь, за что отвечает любой файл, в котором я нахожусь. С фреймворком разобрались. А что с PHP?

Как работать с неизвестным синтаксисом

Больше всего меня удивили в PHP стрелочки: => и ->. Я совершенно не понимала, как они работают.

Пример кода на PHP со стрелочками:

<?php

// 1. Arrow Functions (PHP 7.4+)

// Anonymous function using traditional syntax
$greet = function($name) {
    return "Hello, $name!";
};

echo $greet('World') . PHP_EOL; // Output: Hello, World!

// Anonymous function using arrow function syntax
$greetArrow = fn($name) => "Hello, $name!";

echo $greetArrow('World') . PHP_EOL; // Output: Hello, World!

// 2. Associative Arrays

// Creating an associative array using => operator
$user = [
    'name' => 'John Doe',
    'age' => 30,
    'city' => 'New York'
];

// Accessing values using the key
echo $user['name'] . PHP_EOL; // Output: John Doe

// 3. Class Properties with Arrow Function

class User {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }

    // Method using arrow function for concise syntax
    public function getFullName(): string {
        return $this->name . ' (' . $this->age . ')';
    }
}

$user = new User('Jane Doe', 25);
echo $user->getFullName() . PHP_EOL; // Output: Jane Doe (25)

?>

Я не знаю, кто это придумал Но мне пришлось воспользоваться аж тремя источниками информации, чтобы разобраться: Stack Overflow, прекрасная разработчица Таня и ChatGPT. В тот момент, когда я поняла, что все три источника несут одну и ту же информацию, я убедилась, что поняла правильно.

Как использовать ChatGPT

ChatGPT можно задавать любые вопросы, например, "Что это за стрелочки в PHP?". Но самое простое его использование: если вы дадите ChatGPT кусок кода, он интерпретирует его максимально подробно.

Чтобы интерпретировать код с помощью ChatGPT:

  1. Введите фразу: "Объясни мне код:".

  2. Вставьте код и ждите ответ.

Готово, у вас есть объяснение для кода. Только будьте внимательны, иногда ChatGPT может приврать где-нибудь.

Как использовать Google или Яндекс

Для некоторых вопросов и ChatGPT не нужен, погуглите немного, и Stack Overflow может дать ответ про те же стрелочки, например.

Чтобы найти информацию про разницу между стрелочками в PHP:

  1. Введите запрос: stackoverflow arrows PHP difference.

  2. Откройте первую страницу в рекомендациях.

Готово, вы нашли страницу с информацией о стрелочках.

Заключение

Я никого не призываю избегать коллег и пытаться во всем разобраться самостоятельно. Уметь работать в команде тоже надо.

Я бы просто хотела этой статьей сподвигнуть вас (и себя) иногда потратить чуть больше времени на самостоятельный поиск. Самостоятельный поиск повышает качество вопросов, и вы сами узнаете что-то новое, что может понадобиться позже даже если не нужно сейчас.

Давайте искать самостоятельно.

Послесловие

Что же со стрелочками и что же такое фасад?

Начну со стрелочек:

  • одинарная стрелка -> используется для запроса доступов к свойствам и методам объектов.

  • двойная стрелка => используется для определения значений в массивах и для обозначения тела анонимных функций.

Фасад же предоставляет интерфейс для классов, доступных в контейнере служб приложения.

Приведу пользу фасадов на примере тестирования. Действительно статический класс заглушить полностью нельзя. Но это не является проблемой для фасадов, так как они будут тестироваться похоже на внедренный экземпляр класса.

Tags:
Hubs:
Total votes 20: ↑14 and ↓6+11
Comments27

Articles