• Кто может дать комментарии по поводу кода PHP ООП (Code review)?

    @Oblomingo
    Добрый день,
    я не много понимаю в PHP, но могу попробовать прокомментировать.

    Для начала неплохо, вы пробуете написать свой велосипед - ORM. Увы, вам нехватает знаний по архитектуре, принципов и о паттернах программирования.

    Класс называется treeData и он соединяется с базой данных, получает данные, сохраняет данные, а также умеет сериализовать/десериализовать данные. На лицо нарушение принципа Single Responsobility (почитайте про SOLID принципы). Ваш класс слишком много умеет и ответвенен за совершенно разные вещи - так писать не надо.

    Выделите соединение к базе данных в отдельный класс (singletone pattern).
    Выделите методы получения/редактирования данных в отдельный класс (repository & data mapper patterns).
    Обьект подключения базы данных добавляйте в класс получения данных с помощью иньекции зависимостей (dependency injection).

    П.С. Мне кажется неправильно реализован синглтоне. Смысл в том, чтобы всегда был только один экземпляр класса подключения. Вы проверяете на существование и создаете новый экземпляр (ок), но если экземпляр существует кидаете исключение (зачем?). В том случае, если экземпляр существует просто берите его и используйте.

    Итак:
    1). Правильно реализовать синглетон.
    2). Почитать о SOLID принципах и провести рефакторинг, разделить на разные классы.
    3). Почитать о паттернах проектирования singletone, unit of work, repository, data mapper. После этого вам легче будет написать свой класс репозитории, который будет ответвенен за получение/создание/изменение/удаление обьектов из базы данных.

    Удачи!
    Ответ написан
    1 комментарий
  • Как десериализовать строку как массив из файла json?

    @Oblomingo
    Видимо никак. Как вариант десириализовать как это вы делате теперь, а потом с помощью рефлексии пройтись по всем свойствам обьекта Calendar и добавить месяца в отдельный новый массив/список.
    Ответ написан
    Комментировать
  • C# и Шилдт, как пройти книгу по своему первому ЯП и не взорвать мозг?

    @Oblomingo
    Сам лет пять назад учился по Шилдту. Мужик все очень грамотно обьясняет, читать очень приятно.
    Вот я и читал дома по вечерам, на природе возле озера даже брал книгу с собой к теплому морю.
    Она дала теоретический базис и послужила хорошим фундаментом для дальнейшего изучения.
    А дальше была книга WPF и вот тут пошла практика и пригодились все знания из Шилдта.

    Я вам советую сейчас не сильно огорачться если "не хватает оперативки", просто дочитайте книгу до конца. Не надо запоминать наизусть, просто убедитесь что понимаете код, который написан в параграфе. Даже если вам кажется, что вы мало чего запомнили, в голове у вас основы останутся и всплывут в памяти когда это потребуется.
    Ну а после Шилдта берите что нибудь из прикладных .Net технологий - напишите интернет сайт (прокачаете web навыки, что поможет найти работу) или десктопное приложение, можете попробовать простенькую игру (тут вы познакметесь с паттернами проектирования).
    Вы только встали на длинный, интересный но трудный путь программиста. Немного терпения и у вас все получится!
    Ответ написан
    1 комментарий
  • Почему file is undefined при отправке?

    @Oblomingo
    Потому, что вы инициируете переменную files, а потом используете file.
    Ответ написан
  • Как сохранить в cookie замену класса?

    @Oblomingo
    Несовсем понятен вопрос.
    $('div.basked').toggleClass('basked_ye');
    Эта строка добавляет или удаляет класс basked_ye у элементов div с классом basked. То есть выполняет определенную операцию над DOM элементами.
    Вы хотите сохранить что-то в cookie. Ок, сохранить мы можем какую то информацию - переменную или обьект.
    В указанной вами строке никакой информации нету.
    Ответ написан
  • Insert в таблицу при миграции?

    @Oblomingo
    Вы можете добавить записи в Seed метод.
    Примерно так:
    protected override void Seed(BookService.Models.BookServiceContext context)
    {
        context.Authors.AddOrUpdate(x => x.Id,
            new Author() { Id = 1, Name = "Jane Austen" },
            new Author() { Id = 2, Name = "Charles Dickens" },
            new Author() { Id = 3, Name = "Miguel de Cervantes" }
            );
    }

    Ссылка на статью:
    https://www.asp.net/web-api/overview/data/using-we...
    Ответ написан
    Комментировать
  • Visual Studio для слабого ПК-какой выбрать?

    @Oblomingo
    Visual Studio серьезный комбайн, жрет много ресурсов.
    По идее старые версии могут иметь меньший аппетит, но от них и пользы меньше.

    Для учебных целей может подойти Visual Studio Code - всякие Hello World'ы запускать.
    Для серьезных проектов нужем Visual Studio, но ему и железо помощней нужно.

    Jetbrains пишет свою IDE для C# - сейчас проект называется Raider. Он еще не доделан но можно взять эксперементальную версию и попробовать погонять.
    Ответ написан
    Комментировать
  • Как устроиться на работу бывшему ИП?

    @Oblomingo
    Я в 30 начал программировать на C#. Просто так, как хобби.
    Помимо основной работы (в энергетике), сдал Майкрософтский экзамен и устроился джуниором в одну контору.

    За 4 года сменил две работы, сдал еще около 10-ка экзаменов, прочитал кучу книг по архитектуре. Теперь занимаюсь тем, что пишем энтерпрайз системы для крупных иностранных заказчиков. Месяц назад мне предложили перейти на позицию Senior.

    Я к тому, что никогда не поздно начать, что то новое.
    Ответ написан
    4 комментария
  • Сложный проект ASP.NET: выбор ORM?

    @Oblomingo
    Советую вам задуматься не только об ORM, но и об архитектуре вашего приложения.
    ORM позволяет очень быстро реализовать слой ответственный за трансформацию моделей базы данных в обьекты бизнес модели. Фактически, он реализует кучу таких классических паттернов как Data Mapper, Identity Map, Lazy Load, Repository, Unit of Work и еще кучу всего. Все это вы получаете из коробки + такие приятные вещи для контроля версии базы данных как CodeFirst + migrations. Да, в отдельных случаях вы расплачиваетесь скорость чтения/записи.
    Тут вам должна помочь правильная архитектура вашего приложения. Вы можете проектировать в соответсвии с принципами Domain-Driven-Design. В этом случае (в отличие от монолитного решения) приложения разделено на части. Каждая часть может иметь свою инфраструктуру, которая умеет записывать/читать данные из базы данных (repository pattern) и использовать какой то отдельный фреймворк. Части, которым не актуальна быстрая скорость, может легко использовать удобыный EF. Если в какой то части вы видите проблемы с быстродействием (bottleneck), вы можете изменить repository - выкинуть из нее EF и использовать Dapper. При правильной архитектуре, такая замена не затронет другие части системы и ваш рефакторинг пройдет безболезнено.

    Кроме того для EF есть расширения, которые реализуют Bulk функции:
    https://github.com/loresoft/EntityFramework.Extended
    entityframework-extensions.net
    https://efbulkinsert.codeplex.com/
    Ответ написан
    1 комментарий
  • Что лучше 1С или C#(ASP.NET)?

    @Oblomingo
    Конечно C#!
    1). Серьезный языкс с ООП и другими плюшками.
    2). Майкрософт его активно развивает и добавляет новый функционал.
    3). Востребован во всем мире.
    4). Можно делать все что угодно от десктопных программ до веба и мобильных приложений.
    5). Потихоньку становится мультиплатформенным (уже можно запускать простенькие приложения в Мак ОС и Линуксе).
    6). Очень хорошая и удобная среда программирования (IDE) aka Visual Studio.
    Ответ написан
    Комментировать
  • Смайлики в нотификации?

    @Oblomingo
    Вы можете сохранять смайлики в обычном виде например как ":-)". А при отображении делать автозамену и вместо этой строки вставлять элемент с gif картинкой. Такой вариант будет коректно отображаться в любом браузере.

    Например, так: msg = msg.Replace(":-)", "smile.png ");
    Ответ написан
    Комментировать
  • Можно ли мобильные приложения писать на JS?

    @Oblomingo
    На WIndows/Windows Phone 8 без проблем. При определенных навыках даже можно сделать универсальное приложение, которое будет в маркете Windows Store и работать на десктопных (персональных) компьютерах. И его можно будет загрузить из Windows Phone маркета и использовать в телефоне/планшете.

    Developing Windows Store Apps with HTML5 Jump Start
    www.microsoftvirtualacademy.com/training-courses/d...

    Advanced Windows Store App Development with HTML5 Jump Start
    www.microsoftvirtualacademy.com/training-courses/a...

    Developing Universal Windows Apps with HTML and JavaScript Jump Start
    www.microsoftvirtualacademy.com/training-courses/d...
    Ответ написан
    Комментировать