Вопрос к профессионалам о разработке профессиональных приложений?
Добрый вечер! Вопрос может показаться заезженным и я уверен что большинство людей может сказать: "Иди читай документацию и копайся во фреймворках", но я действительно не мог найти русскоязычные уроки или документации о том как рзарабатывают действительно профессионально приложения.
Так вот, прошу профессионалов подсказать ресурсы или же свои советы из личного опыта, о том как нужно строить архитектуру, структурировать код и т.д. Я конечно понимаю что можно MVC подучить, но главный смысл не в том. К примеру:
Хочу написать рабочую среду windows на html, css, js (это просто пример). Естественно я хочу писать все на ООП. И только я начал это делать, у меня стразу ступор - не знаю как все грамотно сделать. Например думаю, сделаю-ка я объект workspace и от него буду еще что то наследовать, или объект sidebar. Но после долгих раздумий, от не хватки опыта, я ничего не могу придумать, и все сводится к тому чтобы просто описать пару функций, и этого будет достаточно для этих элементов. Вот и все ООП(.
Надеюсь я понятно смог донести информацию о том, что мне действительно нужно - это как научиться профессионально писать приложения. В рунете я ни разу этого не видел. Английский язык вообще хромает, но я тоже в процессе изучания, так что если кроме англоязычных ресурсов ни кто ничего не посоветует то буду углубляться в англоязычные, но конечно очень очень очень будет хорошо если все таки найдется то что я ищу на русском.
Возьмите за пример хотя бы electron и приложения, созданные с его помощью, гляньте чужой код, освойте шаблоны проектирования. Конечно, есть масса англоязычной информации о структуре проектов, тот же Style Guide от Angular, но думаю, что и на хабре часто встречаются достойные переводы и статьи. Ну и вообще, без опыта с голой теорией очень сложно реализовать что-то сразу, начните писать приложения как есть, используйте уже накопленные знания, улучшайте их, меняйте подход, пробуйте, потому что нет профессионального метода для написания приложений, но есть масса шаблонов, которым сейчас следуют
если Вы такую епь спрашиваете то есть только два варианта, сидеть и мычать глядя в монитор и второй вариант, это разбить ваше приложение на части и начать делать с самого простого. Не думайте о том как Вы это потом соберете, скорее всего этого и не произойдет, но зато Вы хоть какой-то опыт получите. А вообще это почти безнадежно в рамках небольшого промежутка времени. И реальных статей которые на сто помогут Вам сесть и сразу нафигачить что-то просто не существует.
и все сводится к тому чтобы просто описать пару функций, и этого будет достаточно для этих элементов. Вот и все ООП(.
Вы это делаете совершенно правильно, смайлик должны быть повернут в другую сторону :) в самом деле существуют задачи, для которых ООП бесполезно и даже крайне вредно, а когда оно вам действительно понадобится, тогда вы и сами поймете, что и как нужно менять, а жить по догмам типа "всегда используй то-то, всегда делай так-то" - это абсолютно не профессионально, не забивайте гвозди микроскопам, профессионал настроен на результат, а не на тактику его достижения.
хорошо) спасибо) но просто у меня такое ощущение что я все равно не развиваюсь дальше, когда время есть хочу развиваться, писать что то сложное, поднимать скилл так сказать. хотя бы ресурсы какие-нибудь крутые бы узнать еще если есть на русском (я имею ввиду не всякие лофтблоги и т.п. где все свое существование проект что и делает - обучает новичков, хотя такой популярный проект, и этот факт что не вижу там реально продвинутого материала заставляет задуматься о том что они ничего больше не знают). в общем хочется найти еще кладень знаниий, можете посоветовать?)
thehighhomie: Читаю ваши комментарии, а вы не пробовали пойти работать? На реальные проекты, под руководством более опытных разработчиков, раз все так уж плохо
Дмитрий Уваров: работал год на компанию) но там одни лендинги нужно было делать, и работал я сам, без команды сейчас на данный момент я ищу новую работу, я как раз хочу то что вы описали, где можно еще больше опыта получить, но не могу найти ничего пока
thehighhomie: ленды конечно тоже хорошо для начала, когда конечно вы используете инструменты для автоматизации, если просто руками, то плохо конечно. а что за город, что нет ни одной конторы?
Дмитрий Уваров: да маленький городок глухой в Краснодарском крае, ничего тут нет. видел что то подобное 1 раз, но не то совсем, по этому я в инете ищу что нибудь, а пока ищу пытаюсь фрилансить. ленды руками все время делал. что инструментвов никаких не использовал, я даже не знаю про них, и что за инструменты можно узнать?) и может вы мне работу предложите? :D
thehighhomie: Я сам из маленького городка в Краснодарском крае)) Армавир называется, благо переехал уже)) Использовали сборщик, препроцессоры, шаблонизаторы может быть? Сниппеты различные, не говоря уже о фреймворках вроде бутстрапа и т. п.? Пиксель перфект, будь он не ладен, наконец)
Дмитрий Уваров: тогда вы знаете город Лабинск) я в нем) я использую бутстрап в верстке) сборщики я така пониаю это типа галпа?) препроцессоры было просто лень учить, я учил вместо них php) так как мне вполне комфортно пока кучу кода в css писать) но в дальнейшем конечно подучу. а на счет шаблонизаторов я немного не понял что вы имеете ввиду, много чего можно под этим термином представить, например php шаблонизатор)
thehighhomie: попробуйте начать использовать препроцессор, stylus или sass, и вы уже не будете смотреть в сторону "кучи кода на css", это точно. Ну скажем, haml, например. Да и бросайте вы этот php, у вас уже есть js, если уж так нужен еще один язык, то выберите python или java, но уж точно не php (это лично мое мнение). Сейчас же все можно писать на js, даже Unity поддерживает по мимо C# js) Gulp - это система запуска задач, конечно он может и собирать проект, но есть куда более приятные инструменты вроде Webpack'а. Читайте, смотрите скринкасты
Дмитрий Уваров: так а как же без php) разработка вордпресса) и куда я с питоном пойду то?) снова несколько месяцев потратить на обочуние. я конечно присматривался к питону, но года так через полтора-два. javu не хочу, а вот js, php, nodeJS хочется конечно в совершенстве додянуть)
Пишите так, как получается. В процессе разработки действительно сложной системы проблемы, связанные с недостатком опыта, дадут о себе знать. Вот их и решайте, путем поиска подходящих инструментов и шаблонов. Никто вам не предложит серебряную пулю - ее просто нет. Есть куча различных подходов - ООП, ФП, MVC, MVVP, и еще больше их апологетов.
да я все понимаю, просто то чувство когда чувствуешь себя никчемным, когда сомневаешься в том что делаешь. не понятно где суть. на собственных граблях всегда учился, но если честно устал уже, хочется действительно что то крутое, где можно для себя много полезного узнать, но гр....ый рунет.... приходится англ учить еще, как бы мне не хотелось из за нехватки времени
https://learn.javascript.ru/classes
Еще есть события, есть слушатели событий. Это тоже нужно обрабатывать.
(система WindowsMessaging в Windows так и работает, чтобы оповещать окна/поля/кнопки о различных событиях между заданными окнами или широковещательными событиями)
Должен быть центральный класс (system), который будет в роли маршрутизатора/арбитра. Он будет следить за всем деревом объектов и маршрутизировать события между объектами (+вести лог по желанию).
Другими словами: это обычное делегирование прав родительскими классами для дочерних с системой событий (подписка, получение, отправка).
я учился там на этом учебнике еще год назад) на счет слушателей я что то там тоже видел помоему, я абстракто понимаю о чем вы говорите, но все же можно ссылку на примеры?)
thehighhomie: вначале - лучше понять вложенность и обмен данными - нарисовать блочную схемку.... а уж потом по ней (как по карте наступления) - кодировать.