- 1
Кто нибудь юзал для построения веб приложений wakanda ? Если да то как оно?
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+141
Кто нибудь юзал для построения веб приложений wakanda ? Если да то как оно?
−102
public class Perechen
{
static public var Nasos_IP_E_40_115_0_55_2:* = IP_E_40_115_0_55_2;
static public var Nasos_IP_E_40_120_1_5_2:* = IP_E_40_120_1_5_2;
static public var Nasos_IP_E_40_130_2_2_2:* = IP_E_40_130_2_2_2;
static public var Nasos_IP_E_40_150_3_2:* = IP_E_40_150_3_2;
static public var Nasos_IP_E_40_160_4_2:* = IP_E_40_160_4_2;
static public var Nasos_IP_E_65_120_3_2:* = IP_E_65_120_3_2;
static public var Nasos_IP_E_65_130_4_2:* = IP_E_65_130_4_2;
static public var Nasos_IP_E_80_115_2_2_2:* = IP_E_80_115_2_2_2;
}
Nasos_IP_E_40_115_0_55_2 - название поля. IP_E_40_115_0_55_2 - класс.
"Программист" ничего не знал о том, что есть коллекции.
+142
#include <iostream>
#include <set>
#include <queue>
#include <iterator>
#include <algorithm>
using namespace std;
class Complex
{
public:
char a;
char b;
public:
Complex(){}
Complex(char i, char j)
{
this->a = i;
this->b = j;
}
friend bool operator < (const Complex& complex1, const Complex& complex2)
{
return ((complex1.a < complex2.a && complex1.b < complex2.b) || (complex1.a < complex2.a && complex1.b == complex2.b) || (complex1.a == complex2.a && complex1.b < complex2.b));
}
friend bool operator >(const Complex& complex1, const Complex& complex2)
{
return ((complex1.a > complex2.a && complex1.b > complex2.b) || (complex1.a > complex2.a && complex1.b == complex2.b) || (complex1.a == complex2.a && complex1.b > complex2.b));
}
friend ostream& operator << (ostream& out, Complex const& complex)
{
out << "First: " << complex.a << " Second: " << complex.b;
return out;
}
friend bool operator == (const Complex& complex1, const Complex& complex2)
{
return ( complex1.a == complex2.a && complex1.b == complex2.b);
}
~Complex()
{
}
};
"Не говнокод, потому что работает" © Автор говнокода
+143
if ($fuck) {
foreach ($objects as $obj) {
if (!$obj['CAT_VALUE']) {
die('У объекта ' . $obj['NAME'] . ' ошибка');
}
if (!$obj['DESCR_VALUE']) {
die('У объекта ' . $obj['NAME'] . ' ошибка');
}
if (!$obj['DESCR_VALUE']) {
die('У объекта ' . $obj['NAME'] . ' ошибка');
}
else {
die('Какая-то ошибка');
}
}
}
Кусок самописного компонента под Битрикс от предыдущего разработчика (тот еще затейник!). Просто выпилил это, т.к. не понял как это отрефакторить, т.к. $fuck нигде никак не объявлена. Да и вообще ценность этого блока кода и так сильно пахнет.
−106
ДокументРасчетовСКонтрагентом = СсылкаНаОбъект.ДокументОснование;
Для ы = 1 По 100 Цикл
Если ТипЗнч(ДокументРасчетовСКонтрагентом) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
Прервать;
Иначе
ДокументРасчетовСКонтрагентом = ДокументРасчетовСКонтрагентом.ДокументОснование;
КонецЕсли;
КонецЦикла;
С вероятностью 100% доберемся до нужного документа
+141
LoggerSngl::instance()->Trace("Заходим под семафор.");
QPRFQueueSemaphoreSngl::instance()->Lock(); //Гыгы.
{
LoggerSngl::instance()->Trace("Зашли под семафор.");
CSingleLock lock(QPREFQueueMutexSngl::instance().get(), TRUE);
LoggerSngl::instance()->Trace("Получение задачи из очереди...");
qprfTask = std::dynamic_pointer_cast<QPRFTask>(_tasks.front());
_tasks.pop();
LoggerSngl::instance()->TraceFmt("Получили задачу из очереди. Остаток длины %d.", _tasks.size());
}
if (qprfTask->isFinishTask())
{
CoUninitialize();
release_chckxml_lib();
qprfTask->semaphore()->Unlock();
_endthreadex(0);
}
−107
Процедура ПокрытияКодПокрытияОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
Покрытия = ЭтаФорма.Покрытия;
Количество = 0;
Для Каждого СтрокаПокрытия из Покрытия Цикл
Если СтрокаПокрытия.КодПокрытия = Текст Тогда
Количество = 1;
КонецЕсли;
КонецЦикла;
Если Количество > 0 Тогда
ПоказатьОповещениеПользователя("Ошибка!",,"Такое покрытие уже присутствует в составе изделия", БиблиотекаКартинок.Ошибка);
НеНайденоПокрытие = Истина;
Возврат;
КонецЕсли;
НеНайденоПокрытие = Ложь;
ЭлементыФормы.Покрытия.ТекущиеДанные.СвязьСПокрытиями = Неопределено;
Если ЭлементыФормы.Покрытия.ТекущиеДанные <> Неопределено Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Покрытия.Ссылка,
| Покрытия.НаименованиеПокрытия
|ИЗ
| Документ.Покрытия КАК Покрытия
|ГДЕ
| Покрытия.КодПокрытия = &КодПокрытия";
Запрос.УстановитьПараметр("КодПокрытия", Текст);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Если ВыборкаДетальныеЗаписи.Количество() > 0 Тогда
ВыборкаДетальныеЗаписи.Следующий();
ЭлементыФормы.Покрытия.ТекущиеДанные.СвязьСПокрытиями = ВыборкаДетальныеЗаписи.Ссылка;
ЭлементыФормы.Покрытия.ТекущиеДанные.НаименованиеПокрытия = ВыборкаДетальныеЗаписи.НаименованиеПокрытия;
Иначе
ПоказатьОповещениеПользователя("Ошибка!",,"Не найдено введенное покрытие", БиблиотекаКартинок.Ошибка);
ЭлементыФормы.Покрытия.ТекущиеДанные.СвязьСПокрытиями = Неопределено;
ЭлементыФормы.Покрытия.ТекущиеДанные.НаименованиеПокрытия = Неопределено;
НеНайденоПокрытие = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Моё творение. =)
−407
Autoresizing mask -> Autolayout -> Size classes -> "android layout" (на apple watch)
Эволюция "автонастройки" размеров в iOS или что бывает если один раз нормально не сесть и подумать.
Для тех кто не в теме - все вышеперечисленное может быть в одном проекте одновременно.
+142
//Парсинг access_token
webEngine.locationProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(ObservableValue<? extends String> observable, final String oldValue, final String newValue) {
Log.i("URL", newValue);
try {
if (newValue.startsWith("https://oauth.vk.com/blank.html")) {
access_token = newValue.split("\\#")[1].split("\\&")[0].split("\\=")[1];
user_id = newValue.split("\\#")[1].split("\\&")[2].split("\\=")[1];
Log.i("access_token: "+access_token," user_id: "+user_id);
MainController.vkApi = new Api(access_token, user_id);
Парсинг строки вида "http://REDIRECT_URI#access_token= 533bacf01e11f55b536a565b57531ad114461ae8 736d6506a3&expires_in=86400&user_id=1234 "
−157
Функция ОпределитьБазовуюДату(стр,ТипДаты,Условие)
рез=NULL ;
Если ТипДаты=Перечисления._ВидБазовойДаты.ЗавершениеРаботы тогда
рез= Стр.ДатаОкончанияРаботы;
ИначеЕсли ТипДаты=Перечисления._ВидБазовойДаты.НачалоРабот тогда
рез= Стр.ДатаНачалаРаботы;
ИначеЕсли ТипДаты=Перечисления._ВидБазовойДаты.ФиксированнаяДата тогда
рез=Условие.ДатаАкта;
ИначеЕсли ТипДаты=Перечисления._ВидБазовойДаты.НачалоРабот тогда
ИначеЕсли ТипДаты=Перечисления._ВидБазовойДаты.НачалоРабот тогда
ИначеЕсли ТипДаты=Перечисления._ВидБазовойДаты.НачалоРабот тогда
рез= Стр.ДатаЗавершенияРаботы;
КонецЕсли;
Попытка
рез =Дата(рез);
исключение
рез=ТекущаяДата();
Сообщить("неопределена дата "+ТипДаты+" для локальной сметы " + стр.ЛокальнаяСмета + ", ключ строки " + Стр.Ключ);
КонецПопытки;
возврат рез;
КонецФункции
-------------------------------------------------------------------------------------------------------------------------
Вот отдельные выжимки:
/////////////////////
Если ст.Options="Percent" тогда //Нужно выяснить что за Percent ибо не помню =( Лучше потом подумаю
Сообщить("Данная смета возможно не корректно рассчитывает концевики! Обратитесь к Администратору!");
КонецЕсли;
//////////////////////
//ЧЧЧ Серега 09,12,12 слав, а почему ты это удалил? (без этих строк сумма сметы не была везде правильной)
Строки=Дерево.Строки.НайтиСтроки(новый Структура("ВидГруппы",Перечисления.ВидыГруппЛокальныхСмет.ДанныеСметы),истина);
//ЧЧЧ
С помощью таких вот функций производится расчет бюджета проекта по капитальному строительству в очень крупной российской компании. Главное что функциональный заказчик этого добра, с глубокой уверенностью считает что у него замечательная конфигурация. Код специаьн