Ответы пользователя по тегу Программирование
  • Простой векторный графический редактор?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Ну, если бы на все задачи можно было найти точные инструкции, было бы скучно.
    Пробуйте написать начиная с малого, например:
    1) Создайте холст, просто объект, который будет помещать в себя фигуры. Это будет некий viewport.
    2) Сделайте скролл этого холста мышкой, во все стороны.
    3) Сделайте возможность динамически добавлять объекты на холст, сначала определите базовый объект, например прямоугольник или линию. Легче на этом моменте сразу определить интерфейс IShape, таким образом дальше будет легче унифицировать все объекты при добавлении их на холст, да и холст ничего не должен знать об этих объектах, только об интерфейсе.
    4) Сделайте drag&drop добавленных объектов, чтобы их можно было тащить.
    5) Добавьте зум, это не простой шаг, тут нужно многое учитывать, особенно часто на этой задаче ломается позиционирование drag&drop объектов.
    6) Сделайте трансформатор объектов, который будет изменять их размер (для прямоугольников и.т.д.), менять точки (для линий), вращать и.т.д.
    7) Сделайте редактор свойств, через который будете назначать атрибуты вашим объектам, такие как цвет заливки, цвет рамки, ширина рамки, непрозрачность и.т.д.
    8) Добавляйте потихоньку различные объекты. Можете подглядывать в другие редакторы, например inkscape.
    9) Реализуйте сохранение и загрузку холста. Тут лучше не изобретать свой формат данных, а использовать открытый, например svg.
    10) Буфер обмена. Тут либо свой формат в бинарник, либо тот же самый svg в текстовом виде (что куда лучше, так сделано в фигме).
    11) Отменить/вернуть - важная штука, и на первый взгляд простая. Но простая она только в том случае, если запоминать шаги путем снимка всех текущих объектов, но этот способ плохой. По нормальному нужно при любой операции над объектами на холсте делать снимок изменений. Например подвинули кубик на 10px влево, и записали в память значение
    { id: 'id кубика', x: -10 }
    и потом при нажатии отмена, будете просто делать обратную операцию, добавлять эти 10px. Тут у вас возникнут сложность с операцией "возврат", но думаю, если вы дошли до этого шага, упорство у вас уже есть. Пригодятся паттерны: command и memento
    12) Ну, тут уже по мелочи, различные киллер фичи, новые объекты, свойства, различные меню и.т.д.
    Ответ написан
    1 комментарий
  • Как понять что программирование это твое?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Ну, стремитесь не изучить язык программирования, а уметь решать определенные задачи. Например делать мобильные приложения, так у вас сузится список того, что нужно учить.
    Вероятно, вам нравится учится программировать только в начальной части графика порога вхождения, когда он очень низок, и как только случаются первые трудности, у вас пропадает интерес. В таком случае, я бы не зацикливался на программировании, в мире очень много других интересных профессий.
    Ответ написан
    Комментировать
  • Как научиться решать задачи по программированию?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Практиковаться, читать умные книжки по алгоритмам и структурам данных. Вот берите например https://leetcode.com/ отсортируйте по сложности (с самых легких), и делайте-делайте. Но без теории алгоритмов будут костыли, поэтому лучше почитать что-то.
    Ответ написан
    Комментировать
  • С чего начать создание приложения для майндмэппинга?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    С нуля будет сложно, хотя это не очень сложная задача. Можете оценить объем работы https://github.com/learn-anything/react-mindmap
    Нужно отталкиваться от того, какие знания и в какой области у вас есть. Если веб, то идите в сторону VueJS + SVG, это будет быстрее и проще.
    Ответ написан
    Комментировать
  • С чего начать изучать программирование законченному гуманитарию?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    1) Если Вас тянет к программированию, то просто читайте книжки, практикуйте, читайте и опять практикуйте. Для JavaScript могу посоветовать "javascript подробное руководство" очень понятная книжка. Если что-то не понятно, гуглите и ищите статьи на эту тему от разных авторов.
    2) Если к программированию Вас не тянет, а просто хочется из-за денег, то бросьте эту идею и продолжайте развиваться в веб-дизайне. Достойному дизайнеру платят не меньше чем программисту. Тем более вы понимаете верстку, такие навыки очень пригодятся.
    Главное правило: делайте то, что нравится, а не то, за что больше платят. т.к если Вам нравится дизайн, то Вы будете профессионалом в дизайне, а если Вам не нравится программирование, то профи вы не будете. Выходит, что дизайнером вы будете хорошо зарабатывать, больше чем программированием. Но если нравится код, то вперед :-)
    Ответ написан
    1 комментарий