-
−102
- 1
- 2
- 3
- 4
- 5
obj_l = list()
for obj, obj_id in [(QuizQuestion, quest_id), (QuizAssigment, ass_id), (QuizQuestionAnswer, answ_id)]:
q_set = getattr(getattr(obj, 'objects'), 'filter')(id=obj_id)
obj_l.append(getattr(q_set, 'count')() > 0 and q_set[0] or False)
(False in obj_l or obj_l[2].question != obj_l[0] or (user and obj_l[0].user)) and abort(IntegrityError())
1) хер такое прочтешь
2) для осмысления прочитанного нужно выпить
3) за осмысление такого нужно выпить еще раз
4) чувак узнал про getattr, хотя стоило вызвать напрямую obj.objects.filter(id=obj_id)
5) q_set.count() > 0 and q_set[0] or false
пятая строка поддается пониманию но катастрофически быстро начинает от этого терять смысл
nimnull,
12 Октября 2012
-
+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