Разница между кодированием и программированием Виталий Хить, Абсолютист

Содержание

Слайд 2

ПРОГРАММИРОВАНИЕ

ПРОГРАММИРОВАНИЕ

Слайд 3

КОДИРОВАНИЕ ?

КОДИРОВАНИЕ

?

Слайд 4

ПРОЕКТИРОВАНИЕ & КОДИРОВАНИЕ Проектирование Объектная модель Паттерны Кодирование Реализация проектной модели

ПРОЕКТИРОВАНИЕ & КОДИРОВАНИЕ

Проектирование
Объектная модель
Паттерны
Кодирование
Реализация проектной модели на языке программирования
Использование программной среды
Языково

зависимые конструкции
Фреймворки
Слайд 5

МОНЕТИЗАЦИЯ КОДА Поддержка программы Создание новых версий программы Повторное использование Уровень

МОНЕТИЗАЦИЯ КОДА

Поддержка программы
Создание новых версий программы
Повторное использование
Уровень функций
Уровень классов
Уровень библиотек
Open Source

(уровень фреймворков)
Продажа исходников
Слайд 6

УРОВНИ АБСТРАКЦИЙ КОДИРОВАНИЯ Оформление кода Пространство имен Языковые конструкции Фреймворки

УРОВНИ АБСТРАКЦИЙ КОДИРОВАНИЯ

Оформление кода
Пространство имен
Языковые конструкции
Фреймворки

Слайд 7

ОФОРМЛЕНИЕ КОДА Пример 1 if (a) b = 2; else b

ОФОРМЛЕНИЕ КОДА

Пример 1
if (a) b = 2; else b = 3;
Пример

2
if (a)
{
b = 2;
}
else
{
b = 3;
}
Слайд 8

ПРОСТРАНСТВО ИМЕН Стандартные правила имен в языке Корпоративные правила именования Правила имен в фреймворке

ПРОСТРАНСТВО ИМЕН

Стандартные правила имен в языке
Корпоративные правила именования
Правила имен в фреймворке

Слайд 9

ЯЗЫКОВЫЕ КОНСТРУКЦИИ

ЯЗЫКОВЫЕ КОНСТРУКЦИИ

Слайд 10

ЯЗЫКОВЫЕ КОНСТРУКЦИИ JavaScript var Class1 = {}; Class1.x = “Test”; Class1.prototype.functionA

ЯЗЫКОВЫЕ КОНСТРУКЦИИ

JavaScript
var Class1 = {};
Class1.x = “Test”;
Class1.prototype.functionA = function() { return

5; }
Class1.functionB = function() { return this.x; }
function Class2() {}
AS2
class Class1
{
public var x :String = “Test”;
function Class1() {};
function functionA() :Number { return 5; }
function functionB() :String { return this.x; }
}
AS3
Приведение типов
Полноценный static
Слайд 11

ФРЕЙМВОРКИ ИЛИ ОСОБЕННОСТИ ЯЗЫКА? 2 + 2 = 4? Sprite s

ФРЕЙМВОРКИ ИЛИ ОСОБЕННОСТИ ЯЗЫКА?

2 + 2 = 4?
Sprite s = new

Sprite();
s.x += 0.000000001; trace(s.x); // 0
Number y = 0;
y += 0.000000001; trace(y); // 0.000000001;
mxml
Слайд 12

ЧИТАБЕЛЬНОСТЬ & ПРОИЗВОДИТЕЛЬНОСТЬ AS3 var i :int = 1; push 1

ЧИТАБЕЛЬНОСТЬ & ПРОИЗВОДИТЕЛЬНОСТЬ

AS3
var i :int = 1; push 1
var j :int =

2; push 2
var k :int = i + j; add
convert_i
HAXE
add_i
inline
Tamarin (ByteCode)
function main function
{ {
getlocal0 pushbyte 1
pushscope pushbyte 2
add_i
finddef print .print
pushbyte 1 }
pushbyte 2
add_i
callproperty print(1)
returnvoid
}
Слайд 13

САМОДОКУМЕНТИРОВАННЫЙ КОД Документирование классов и членов классов Документирование заголовков функций Документирование кода Документирование соглашений

САМОДОКУМЕНТИРОВАННЫЙ КОД

Документирование классов и членов классов
Документирование заголовков функций
Документирование кода
Документирование соглашений

Слайд 14

УНИВЕРСАЛЬНЫЕ ФРЕЙМВОРКИ Flex Достоинства Все в одном флаконе Индустриальный стандарт Недостатки

УНИВЕРСАЛЬНЫЕ ФРЕЙМВОРКИ

Flex
Достоинства
Все в одном флаконе
Индустриальный стандарт
Недостатки
Mxml
Большой вес
Базовый класс (>400K текста)
MinimalComps (bit-101.com)http://www.minimalcomps.com/
Достоинства
Базовый

класс (<7K)
Высокая модульность
Недостатки
Отсутствие соглашений
Слабая расширяемость
Грустненький вид
Слайд 15

ЧУКЧА - ПИСАТЕЛЬ Зачем необходимо уметь читать чужой код Документация &

ЧУКЧА - ПИСАТЕЛЬ

Зачем необходимо уметь читать чужой код
Документация & исходники
Библиотеки в

бинарниках или исходниках
Как этому научиться
Гугл код
Портирование с другого языка