• Стоит ли учить сегодня ASP.NET и можно ли на этом заработать?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Начнем с терминологии, а то хейтеры тут не особо разбираются =) Между ASP и ASP.NET MVC разница примерно такая же, как между Java и JavaScript.
    Java - это язык, как и C#. Под них есть свои веб-фреймворки, такие как JavaEE, Spring для Java или ASP.NET MVC, NancyFX для C#.


    Учить ASP (classic ASP) или ASP.NET (который Web Forms) с нуля уже не стоит. А вот ASP.NET MVC - отличный выбор. Это уже достаточно зрелый фреймворк, на котором работает много серьезных проектов (таких, как StackOverflow) и которая востребована на рынке как в России, так и в мире.

    Сам C# достаточно интересный, активно развивающийся язык. Платформа себя чувствует неплохо на любых популярных устройствах. Хорошо развивается .NET Core, являющийся переосмыслением монолитного .NET Framework, позволяющий разрабатывать компатные кросслатформенные приложения, в том числе и с использованием ASP.NET Core, которые можно развертывать самостоятельно, без огромного сервера за спиной, аналогично Node.js.

    Конечно, с ASP.NET MVC не пофрилансишь и сайты-визитки разрабатывать не так удобно =) Но поддерживать крупные приложения - одно удовольствие.

    А Java - это уже такой динозаврик, который стагнирует в роли вечного догоняющего, потихоньку будет сходить на нет в ближайшее десятилетие. Да, платформа обеспечила себя специалистами, тоннами легаси-проектов, которые необходимо поддерживать, поэтому с работой и под нее проблем не будет и менеджеры часто выбирают эту штуку, как проверенное десятилетиями средство. Но с точки зрения обычного программиста, я не вижу смысла выбирать Java.
    Ответ написан
    3 комментария
  • Нуборазмышления по поводу интерпретируемых Java\python\c# и компилируемых с++\с итп?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    С чего вы взяли, что в игре 90% это текстуры?
    Что значить "делать текстуры"? Видеокарта наштампует вам текстур, а что с ними делать? Кто будет вычислять что выводить, в каком порядке, почему?
    Как именно java связывается в видеокартой? Она же не может слать в нее напрямую, как минимум ваша программа должна общаться с драйвером видеокарты.
    А до драйвера видеокарты можно использовать графический фреймворк, иначе вам нужно изучть оптику, 3д моделирование, геометрию на таком уровне, что начать писать игру вы начнете лет через 10-15.
    А для C++ под винду есть готовый DirectX, который сделает за вас 90% работы. А под java нет DirectX...

    В общем, вы не совсем то пытаетесь посчитать.
    Ответ написан
    Комментировать
  • Как получить инвестиции в свой стартап?

    GailWynand
    @GailWynand
    Интересуюсь ИТ, биржевой торговлей, стартапами
    Проблема стартап-сообщества и общества в целом проста — люди не понимают, что нужно продавать. «А сколько я вам должен?» — «А сколько дадите?». Это жуткий совок. Надо как-то внедрить в сознание, возможно, в обучение, что пока ты не начнешь продавать, у тебя ничего не получится.

    Если бы я был стартапером, я бы по-максимуму выжимал «три F» (family, friends, fools — семья, друзья, дураки), чтобы показать, что я уже чего-то достиг и могу достичь большего. Я бы ходил по инвесторам, но не за деньгами, а за советом. Чтобы не я у них просил деньги, а они в какой-то момент сами мне эти деньги предложили.
    Ответ написан
    2 комментария
  • Как база данных производит подсчет строк?

    Да, как реализован COUNT()?

    Зависит от:
    а) того, что будет внутри COUNT
    б) того что будет в WHERE (и будет ли он вообще);
    в) реализации в конкртеной СУБД;

    Пример 1: если вы сделаете COUNT с WHERE по неиндексированному полю, то без сканирования таблицы не обойтись. Кроме того, если поле внутри COUNT() может быть NULL, то СУБД придется выкидывать еще и нуллы, т.к. COUNT их не учитывает.

    Пример 2: если вы сделаете COUNT по первичному ключу без каких-либо фильтров, то СУБД вероятно просто вернет вам количество строк из своих служебных структур, т.к. первичные ключи а) уникальны; б) не могут быть NULL в большинстве сегодняшних СУБД.

    Вывод: SQL это высокоуровневый декларативный язык, который перекладывает принятие алгоритмических решений на планировщик СУБД, что дает очень большой простор для оптимизаций в конкретных реализациях. Лучший рецепт - построить план КОНКРЕТНОГО запроса и увидеть, что потребуется для его выполнения.
    Ответ написан
    Комментировать
  • Правильная разработка программного обеспечения!?

    Сам искал хорошие уроки по этой теме, но не нашел таковых (что бы в полном объеме все на пальцах показывали :D ).
    Читайте msdn -> Руководство по разработке библиотек классов

    Правила именования
    Описывает правила именования типов и членов в библиотеках классов.
    
    Правила разработки типов
    Описывает правила по использованию статических и абстрактных классов, интерфейсов, перечислений и структур.
    
    Правила разработки членов
    Описывает правила разработки и использования свойств, методов, конструкторов, полей, событий и операторов. В данном разделе также описываются лучшие методики разработки.
    
    Разработка с обеспечением расширяемости
    Описывает правила по проектированию расширяемых библиотек.
    
    Правила разработки исключений
    Описывает правила по проектированию, генерации и обработке исключений.
    
    Правила использования
    Описывает правила использования массивов и атрибутов, а также правила реализации операторов равенства.
    Ответ написан
    1 комментарий
  • Правильная разработка программного обеспечения!?

    Nipheris
    @Nipheris Куратор тега C#
    "Нормально ли создавать в каждом классе куча экземпляров других классов?", "Не режет ли потом данная программа по производительности ПК с такими количеством уровнями классов?"


    А вы поймите, что если вас беспокоит приведеннный вами код, вам надо не о сколько о классах думать, и не о производительности, сколько о функциях и методах. Зелим Бельтоев уже хорошо намекнул вам об этом, я скажу еще раз словами: то, что ОБЪЕКТОВ много и между ними сложные связи - это НОРМАЛЬНО. Самое главное, что у вы должны уметь ограничивать - сложность и объем связей в КОНКРЕТНОМ участке кода. Пока вы понимаете, ЧТО у вас написано в конкретном методе, и КАК это себя ведет (причем, это понимание не расходится с рельностью) - вы все делаете правильно. Это важнейший критерий. Производительность это тоже фактор, но я даже не могу себе представить, насколько сложную структуру классов нужно изобрести, чтобы она реально мешала тому же CLR исполнять код. Реально узкие места по пр-ти возникают в алгоритмах с высокой алгоритмической сложностью, таких мест обычно мало (если они вообще есть, в бизнес-приложениях в 99% случаев все упирается в IO, или в необходимость побольше кэшировать на клиенте), и они целенаправленно оптимизируются.
    Ответ написан
    8 комментариев
  • Правильная разработка программного обеспечения!?

    @VanKrock
    А тут вложенность и не нужна.
    Вот у вас есть сущность Компания (Company) в вашей компании разве есть страны? Нет, у нее есть офисы (Office)
    А у офисов уже есть адрес (Address) какой то конкретный и на все остальные ему как бы пофиг поэтому вложенность тут не нужна, она понадобится при заполнении например чтобы показать dropbox пользователю, для этого сделайте AddressDataBase какой-нибудь со вложенностью адресов. И у обычно если много офисов, то у них указывают контактные данные

    то есть
    class Company
    {
        public List<Office> Offices {get; set;}
        public string Description {get; set;} //Тут описание вашей компании: год основания там и все такое.
        public Contacts GlobalContacts {get;set;} //Глобальные контакты для всей компании
    }
    
    class Office
    {
        public Address Address {get; set;}
        public List<Employee> Employees {get; set;}
        public List<Tour> Tours {get;set;}
        public Contacts Contacts {get;set;}
    }
    
    class Address
    {
        public string Country {get;set;}
        public string City {get;set;}
        public string Street {get;set;}
        public string HouseNumber {get; set;}
    }
    
    class Tour
    {
        public string Country {get; set;}
        public string City {get; set;}
        public Hotel Hotel {get; set;}
    }
    
    
    class Hotel
    {
        public string Description {get;set;}
        public Address Address {get; set;}
        public List<Image> Images{get; set;}
    }


    Ну и конечно сделайте конструкторы.

    Инициализация офиса будет такой

    var office = new Office(
                    new Address(country, city, street, houseNumber), 
                    new List<Employee>(),
                    new List<Tour>(),
                    new Contacts { Email = "office@mail"} 
                    );
    Ответ написан
    7 комментариев
  • Правильная разработка программного обеспечения!?

    @Beltoev
    Живу в своё удовольствие
    - Методы?
    - Не, не слышал

    А если точнее:
    Company c = new Company();
    c.SetInfo("Travel", "Touristic company");
    
    Address address = new Address();
    var idCountry = address.AddCountry("Name");
    var idCity = address.AddCity(idCountry, "City");
    address.AddOffice(idCity, "Main office", "Street", "Email", ... );
    
    Contact contact = new Contact("website", address);
    c.AddContact(contact);
    
    Tour tour = new Tour("China", "Hong Hong");
    
    c.AddTour(tour);
    ...


    Набросок грубый, но суть того, как было бы правильнее, думаю, передает доходчиво
    Ответ написан
    7 комментариев
  • Правильная разработка программного обеспечения!?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    конечно не правильно. Откуда вообще эта вера в то что всё можно делать правильно?
    вы не можете создавать новый продукт сразу правильно, большинство вещей вы только в процессе реализации можете понять, как сделать лучше. Поэтому позвольте себе ошибаться, не бойтесь ошибаться, ошибайтесь, исправляйтесь и развивайте продукт.
    Ответ написан
    Комментировать