У классов нет свойств - Признак плохого кода #2


6 0

Очередной признак плохого кода - отсутствие свойств у класса. Опять же, это только признак, а не гарантия плохого кода. Бывает множество случаев, когда классы могут быть без свойств. Но если у вас в проекте большинство классов без свойств - это серьезный сигнал остановится и подумать, а все ли верно? 

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

Если в классе можно все методы сделать статичными, и функционал не поменяется, то почему они не статичные? 

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


Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым


Комментарии

Владимир_

28 Марта 2018

Функциональное программирование без состояний и выглядит во многих случаях красивее. Главное не впадать в крайности и думать когда что-то делаешь


Николай

29 Марта 2018

Я в фабриках не держу свойств - это плохо?


Михаил Фленов

29 Марта 2018

Норм


Алексей

30 Марта 2018

Михаил, можно узнать ваше мнение по поводу Ruby?
И насколько он востребован?
Я думаю что учить Ruby или c#


Михаил Фленов

30 Марта 2018

Я никогда с Ruby не работал. Слышал много хороших вещей, что там классно MVC сделан и вроде как .NET Razer взял от Ruby многое. Не знаю, на сколько верно.


NoStorm

06 Aпреля 2018

Алексей,  
Я писал довольно много на Ruby и скажу так: сам язык довольно приятный, Rails - классный фреймворк, для веб-разработки и там много что элегантно сделано (ASP.NET MVC много что оттуда перенял). Но язык довольно медленный, и инфраструктура вокруг него имеет свои особенности.  Это в целом не проблема если уметь все правильно готовить, но времени на получение сакральных знаний можно убить много. На рельсах написано довольно много всего, вакансии есть, но конечно их в разы меньше чем под C#, Java или PHP.  Ну и если ты не пользуешься Линукс или МакОС, то на Венде с Руби могут быть траблы в плане установки библиотек с расширениями на Си и менеджерами версий самого языка. Если тебя это не страшит, то берешь книжку Agile Web Development with Rails (от авторов фреймоврка, на русском тоже есть, но перевод ужасный) и в путь.

На C#  я тоже кодил и считаю что сейчас это один из самых продвинутых и удобных языков сегодня. Он отлично подходит почти для любых целей (десктоп, веб, игрухи). Но лично меня дико огорчает замкнутость на виндовую инфраструктуру (да есть всякие Mono и .NET Core, но это так чисто поиграться, если хочешь сделать что-то серьезное нужна Венда и Visual Studio), соотвественно нужен виндовый хостинг и прочее. Вакансий по шарпе полно, но и конкуренция выше, а зарплаты в среднем ниже (хотя тут уже от твоих скиллов зависит).

В целом можно учить и то и другое, так как это разные языки с разными философскими подходами и для расширения кругозора полезно что-то написать и на том и на другом.  


Добавить Комментарий

Еще что-нибудь

Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне