• Как перестать говнокодить и принимать неверные архитектурные решения?

    miraage
    @miraage
    Старый прогер
    как писать поддерживаемый код?

    Если уж очень коротко, то соблюдать SOLID/GRASP. Мне понравился твит одного из авторов React Router:
    https://twitter.com/mjackson/status/1171524189850701825

    Most common mistake software developers make: putting stuff in the wrong place. Coupling responsibilities and concepts that should be kept separate.
    For me, this is 95% of software development. Just figuring out *where* things belong.


    Что гуглить, что учить?

    Фундаментальные знания, вроде вышеупомянутых SOLID/GRASP, паттерны (не только классические паттерны, но и вообще, общеизвестные решения определённых задач), базовые структуры данных. Фреймворки/библиотеки всегда будут приходить/уходить, что-то будет забываться. А фундаментальные знания всегда актуальны.

    Может литературу какую почитать посоветуете?

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

    Можно ли себя называть миддлом, если твой код говно?

    Не пытайтесь себя оценить. В каждой компании свои понятия миддла. А если кто-то 35 лет на лиспе кодил, а потом прыгнет на Angular - кто он, джун или сеньор?
    И, да, все мы в какой-то степени пишем говнокод. Если кто-то Вам доказывает, что он пишет супер чистый код - не слушайте.

    И ответ на главный вопрос.
    Как перестать говнокодить и принимать неверные архитектурные решения?

    Это невозможно. Все проекты, которые чуток сложнее CRUD-ов, рано или поздно обрастают говнокодом. Никто не пишет идеальный код. Код должен работать и решать проблемы бизнеса.
    Ответ написан
    6 комментариев
  • Как стать Junior Java Developer, имея немалый опыт разработки на этом же языке?

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

    Пишешь резюме, указываешь свой опыт, идешь на собеседование:

    1) Либо тебя берут
    2) Либо тебе говорят, что бы безрукий мудак (уточняешь почему).

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

    Если ты не конченный тип, то одной книжки по языку и один учебный проект(который ты делал сам примерно месяц) достаточно для того, чтобы тебя взяли джуном на работу.
    Ответ написан
    Комментировать
  • Как заставить работать @Inject в поля класса в Dagger 2?

    zagayevskiy
    @zagayevskiy Куратор тега Java
    Android developer at Yandex
    Инжект конструктора и инжект полей отличаются. Инжект конструктора работает так - вы перечисляете параметры и они инжектятся. То есть так:
    public class MainWindow {
        private final ProfileJPanel profileJPanel;
    
        @Inject
        public MainWindow(ProfileJPanel profileJPanel){
            this.profileJPanel = profileJPanel;
            System.out.println(profileJPanel.getName());
        }
    }


    А для инжекта полей нужно вызывать метод inject вашего комонента для конкретного объекта.
    Не советую смешивать.
    Ответ написан
    4 комментария