вопрос возник по прошлому воркшопу - типы функций public / private - это наследие ООП, чтобы solidity имел все признаки ООП. Откуда у этого растут корни, почему в других современных языках указания этих типов все меньше?
#workshop
public / private - модификаторы доступа. Во всех языках следующих парадигме ООП они будут присутствовать. Если проще объяснять, то это "предохранитель" от ситуаций когда ты получаешь объект там, где его быть не должно или изменять параметры которые не должны меняться. Чтобы не удивляться почему пользователю 100500 лет, ведь ты строго задал в классе (контракте) способ создания возраста с проверкой, ставишь модификатор private. И пользуешься в своем коде методом createUser, который создает пользователя по всем правилам. Метод createUser удобно разбить на несколько методов, один проверяет почту, другой даты и т.п. Но эти методы по отдельности не имеют смысла, поэтому доступ к ним лучше ограничить этим классом (котрактом) - private. Удобство в том, что если ты решил накодить суперпроверку почтовых адресов, то тебе нужно изменить всего один метод, без ущерба для остальных, не выискивая по всему коду разрозненные функции, циклы и т.п.. Короче как в аптеке. Все по полочкам, но некоторые полочки доступны только аптекарю. Ты отдаешь рецепт, получаешь нужный препарат в точных пропорциях, но с полок брать не можешь.
Обсуждают сегодня