-
+21
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
if(m_bitRate < DSS_LOW_RATE/1000000.)
{
m_bitRate = DSS_LOW_RATE/1000000.;
}
else if(m_bitRate > DSS_HIGH_RATE/1000000.)
{
m_bitRate = DSS_HIGH_RATE/1000000.;
}
else if(m_bitRate > (.5*(DSS_HIGH_RATE - DSS_LOW_RATE) + DSS_LOW_RATE)/1000000.)
{
m_bitRate = DSS_HIGH_RATE/1000000.;
}
else
{
m_bitRate = DSS_LOW_RATE/1000000.;
}
умиляет. ну хотя бы, упростить .5*(DSS_HIGH_RATE - DSS_LOW_RATE) + DSS_LOW_RATE) до (DSS_HIGH_RATE + DSS_LOW_RATE)/2 -- понятнее, да? тогда и if(m_bitRate > DSS_HIGH_RATE/1000000.) можно убрать за ненадобносью (ибо число которое больше чем максимальное из двух точно больше чем среднее из этих жвух), и самое верхнее if(m_bitRate < DSS_LOW_RATE/1000000.) можно убрать ибо в else у нас то же самое произойдет - и сразу как бы читаестя с ходу и понимается, не надо напрягаться.
Боже, как я люблю крупные проприетарные проекты написанные людьми выбравшими для себя не свою профессию разработчика софта...
Pencioner,
11 Октября 2012
-
+139
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
private static string f(bool? arg)
{
switch (arg)
{
case true: return "true";
case false: return "false";
case null: return "null";
default: return "???";
}
}
В продолжение историй про bool-shit. Если строку 8 убрать, то Visual Studio пишет:
"Error 3 'f(bool?)': not all code paths return a value"
Что должно быть в аргументе, чтобы попасть в ветку default?
absolut,
11 Октября 2012
-
−121
- 1
НомСтрЗаказа = ПолучитьПустоеЗначение("Число");
Нашел тут в загашниках при поддержке "чужого кода".
Вот оказывается как надо присваивать переменной нулевое значение!
jerokee,
11 Октября 2012
-
−121
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
Функция СоздатьЗапрос(Текст) Экспорт
Запрос = Новый Запрос;
Запрос.Текст=Текст;
Возврат Запрос;
КонецФункции
Функция СоздатьМассив() Экспорт
Возврат Новый Массив;
КонецФункции
Функция СоздатьСоответствие() Экспорт
Возврат Новый Соответствие;
КонецФункции
Функция СоздатьСтруктуру() Экспорт
Возврат Новый Структура;
КонецФункции
Функция СоздатьСписокЗначений() Экспорт
Возврат Новый СписокЗначений;
КонецФункции
Вот такие вот функции (это естественно не все) от OLE-мастера: NewObject - не, не слышал.
ilya2184,
10 Октября 2012
-
+75
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
public class Тетрадка {
public static РабочийДень закрытьДень(РабочийДень последний, double зарплатаВыдана, double кассуЗабрали) {
последний.выдана_зп = зарплатаВыдана;
последний.выручку_забрали = кассуЗабрали;
РабочийДень новый = new РабочийДень();
Calendar c = Calendar.getInstance();
новый.год = c.get(Calendar.YEAR);
новый.месяц = c.get(Calendar.MONTH);
новый.день = c.get(Calendar.DAY_OF_MONTH);
последний.следующийДень = новый.год + "-" + новый.месяц + "-" + новый.день;
новый.предыдущийДень = последний.год + "-" + последний.месяц + "-" + последний.день;
новый.остаток = последний.остаток.сделатьКопию();
новый.вкассе = последний.вкассеОбщее - последний.выручку_забрали;
новый.общаяЗарплатаПрошлогоДня = последний.общаяЗарплата - последний.выдана_зп;
String папка = "./days/" + новый.предыдущийДень + "/" + новый.предыдущийДень + "-";
последний.сохранить(папка + "РабочийДень.data", папка + "ОстатокКарт.data", папка + "Приход.data");
новый.сохранить("./последнийРабочийДень.data", "./последнийОстатокКарт.data", "./последнийПриход.data");
return новый;
}
....
Brainexplode
VirtualVoid,
10 Октября 2012
-
+139
- 1
- 2
- 3
- 4
- 5
switch (!_data.Provider)
{
case true: _currentState = states.DT2F; break;
case false: _currentState = states.DT2P; break;
}
Проверка двух условий
Prafesor,
10 Октября 2012
-
+156
- 1
- 2
- 3
- 4
- 5
getControlValues : function(isSimpleValue){
return this._getControlData(function(tab){
return tab.getControlValues(isSimpleValue);
});
}
Образец "самодокументируемого кода"
Маленький метод, но как много в нем загадок.
jangot,
10 Октября 2012
-
−153
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
create table ISU.Н_ЛЮДИ
(
ИД NUMBER(9) not null,
ФАМИЛИЯ VARCHAR2(25) not null,
ИМЯ VARCHAR2(15) not null,
ОТЧЕСТВО VARCHAR2(20),
ПИН VARCHAR2(20),
ИНН VARCHAR2(20),
ДАТА_РОЖДЕНИЯ DATE not null,
ПОЛ CHAR(1) not null,
МЕСТО_РОЖДЕНИЯ VARCHAR2(200),
ИНОСТРАН VARCHAR2(3) not null,
ФИО VARCHAR2(80),
ДАТА_СМЕРТИ DATE default '09.09.9999' not null,
КТО_СОЗДАЛ VARCHAR2(40) default USER not null,
КОГДА_СОЗДАЛ DATE default SYSDATE not null,
КТО_ИЗМЕНИЛ VARCHAR2(40) not null,
КОГДА_ИЗМЕНИЛ DATE default SYSDATE not null
)
Мопед не мой.
PL/SQL, крупная организация.
Oracle, зачем ты разрешил кириллицу в именах полей?
Miketsukami,
10 Октября 2012
-
−121
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
Процедура аСсылкиПриЗаписиПриЗаписи(Источник, Отказ) Экспорт
Если аСервер.ЗагрузкаПоОбменуРиб(Источник) Тогда
Возврат
КонецЕсли;
Если ТипЗнч(Источник)=Тип("СправочникОбъект.Корреспонденты") Тогда
Если Источник.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли;
Если Источник.Ссылка.ЭтоГруппа Тогда Возврат; КонецЕсли;
Если Источник.Предопределенный Тогда Возврат; КонецЕсли;
Источник.ОбменДанными.Загрузка=Истина;
Источник.Записать(); //Записать() в подписке ПриЗаписи() - крутой костыль
Источник.ОбменДанными.Загрузка=Ложь;
Источник.Комментарий = ...
Вот такая вот подписка при записи любых ссылок. 3 Если подряд? Логическое умножение - не, не слышал. Зато Записать() в подписке ПриЗаписи - слышал. Автор Хан Юрий Валентинович.
ilya2184,
10 Октября 2012
-
+156
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
function isProperty(object, property) {
"use strict";
var p, names, original = object,
ecmaTypes = [Object, Array, String, Number, Date];
try {
for (p = 0; p < ecmaTypes.length; p += 1) {
if (ecmaTypes[p] == object) {
console.log("looking up: " + ecmaTypes[p]);
names = Object.getOwnPropertyNames(ecmaTypes[p]);
if ('prototype' in ecmaTypes[p]) {
names = names.concat(
Object.getOwnPropertyNames(
ecmaTypes[p].prototype));
}
break;
}
}
do {
object = object.prototype.__proto__.constructor;
names = names ?
names.concat(Object.getOwnPropertyNames(object)) : [];
if ('prototype' in object) {
names = names.concat(
Object.getOwnPropertyNames(object.prototype))
}
} while (object != Object)
if (!names) {
names = Object.getOwnPropertyNames(object);
}
} catch (error) {
for (p in object) {
if (object[p] == property) {
return true;
}
}
return false
}
for (p = 0; p < names.length; p += 1) {
if (original[names[p]] == property ||
original.prototype[names[p]] == property) {
return true;
}
}
return false;
}
А как еще узнать, является ли функция методом принадлежащим объекту или нет? Это еще после трех часов проведенных в муках пытаясь понять, что вообще происходит.
wvxvw,
10 Октября 2012