TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #962 · 17.02

В этом году я читаю небольшой курс лекций студентам Высшей Инжиниринговой Школы НИЯУ МИФИ, вот на прошлой неделе начал. Тема: архитектура приложений. Сначала SOLID, простые паттерны, а потом сложные паттерны и DDD. Долго думал над тем, какие примеры приводить. Классические книжные не хотелось, типа вот у нас класс "Животное", у него наследник "Кошка". Это понятно для жизни, но далеко от реального программирования. И примеры со своей работы не хотелось, потому что без знания специфики не будет понятно, что такое "Цифровая ведомость объёмов работ", и почему в ней есть те или иные ограничения. Так что придумал вот такой сценарий для студентов: примеры из видеоигр. Любая видеоигра это программа, написанная разработчиками на языке программирования. Это реальные люди, которые сталкивались с реальной необходимостью применить какие-либо паттерны и архитектурные подходы. Я, конечно, не знаю, как та или иная функция была реализована в игре на самом деле — вполне возможно, что из-за спешки, производственного ада, использования устаревших технологий или проблем планирования что-то написано очень плохо, коряво, без архитектуры и с огромным техническим долгом. Но я просто показывал ситуации, в которых какой-то конкретный структурный подход кажется уместным, и рассказывал, как можно такую ситуацию реализовать на практике. Вроде получилось неплохо, студентам зашло. Обратная связь по лекции пришла положительная, так что будем продолжать :) #dev

Hashtags

Резултати

Намерени 1 подобни публикации

Търсене: #elseif

当前筛选 #elseif清除筛选
мобилки at home

@apphomie · Post #100 · 13.03.2018 г., 09:00

Пока сообщество (точнее, хэйтеры) занято обсуждением метода toggle для Bool, в Swift 4.1 появились две директивы: canImport и targetEnvironment, предложенные Эрикой Садун. Попробовать их можно уже сейчас в Xcode 9.3 beta 4. Первая будет полезна для кроссплатформенных решений и позволяет определить, можно ли импортировать тот или иной модуль. #if canImport(UIKit) // UIKit-based code #elseif canImport(Cocoa) // OSX code #elseif // Workaround/text, whatever #endif Вторая директива с единственно возможным аргументом simulator позволяет выполнить условную компиляцию для симулятора или реального девайса. Теперь не нужно перечислять все любимые нам архитектуры и ОС (arch(i386) || arch(x86_64)) && (!os(macOS)), а достаточно будет этого: // Test for a simulator destination #if targetEnvironment(simulator) print("Simulator") #else print("Device") #endif http://ericasadun.com/2018/03/05/new-to-swift-in-xcode-9-3-beta-4-se-0075-and-se-0190-allow-better-configuration-testing/