- 1
int c = ((i-(i%(int)pow(10,p)))/(int)pow(10,p))%10;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+105
int c = ((i-(i%(int)pow(10,p)))/(int)pow(10,p))%10;
Выделение из числа I цифры, стоящей на месте P с конца.
=>
i = 1234, p = 2, c => 2
+120
string tmpS;
//идут всякие монипуляции с этой строкой
//. . .
tmpS.Remove(0, tmpS.Length);
Реальный код из коммерческого продукта.
+164
<?php
$Options = file("OPTIONS.txt");
foreach ($Options as $opt)
{
$opt = trim($opt);
eval("$".$opt.";");
}
+165
function get_sel_values(index){
var test = eval('typeof opt_val'+index);
if ( test != 'undefined' ){
eval('var sel_values = opt_val'+index);
return sel_values;
}
else { return false; }
}
//**************************************************************
function get_sel_text(index){
var test = eval('typeof opt_text'+index);
if ( test != 'undefined' ){
eval('var sel_text = opt_text'+index);
return sel_text;
}
else { return false; }
}
//**************************************************************
function show_select(index, lev, dv){
if ( dv == 'jdc1'){ var tr = "jdc2";}
if ( dv == 'jdc2'){ var tr = "jdc3";}
if ( dv == 'jdc3'){ var tr = "jdc4";}
var curr_sel_text = get_sel_text(index);
var curr_sel_value = get_sel_values(index);
if ( curr_sel_value != false && curr_sel_text != false ){
if ( dv == 'jdc1'){
document.getElementById('jdc1').style.visibility = "visible";
document.getElementById('jdc2').style.visibility = "hidden";
document.getElementById('jdc3').style.visibility = "hidden";
document.getElementById('jdc4').style.visibility = "hidden";
document.forms["form1"].elements['cc2'].length = 0;
document.forms["form1"].elements['cc3'].length = 0;
document.forms["form1"].elements['cc4'].length = 0;
}
if ( dv == 'jdc2'){
document.getElementById('jdc1').style.visibility = "visible";
document.getElementById('jdc2').style.visibility = "visible";
document.getElementById('jdc3').style.visibility = "hidden";
document.getElementById('jdc4').style.visibility = "hidden";
document.forms["form1"].elements['cc3'].length = 0;
document.forms["form1"].elements['cc4'].length = 0;
}
if ( dv == 'jdc3'){
document.getElementById('jdc1').style.visibility = "visible";
document.getElementById('jdc2').style.visibility = "visible";
document.getElementById('jdc3').style.visibility = "visible";
document.getElementById('jdc4').style.visibility = "hidden";
document.forms["form1"].elements['cc4'].length = 0;
}
var count_values = curr_sel_value.length;
var category_list = document.forms["form1"].elements[lev];
var count_category_list = category_list.options.length;
category_list.length = 0;
for (i = 0; i < count_values; i++){
if (document.createElement){
var newCategoryListOption = document.createElement("OPTION");
newCategoryListOption.text = curr_sel_text[i];
newCategoryListOption.value = curr_sel_value[i];
(category_list.options.add) ? category_list.options.add(newCategoryListOption) : category_list.add(newCategoryListOption);
}else{
category_list.options[i] = new Option(curr_sel_text[i], curr_sel_value[i], false, false);
}
}
document.getElementById(tr).style.visibility = "visible";
}
else{
document.getElementById(tr).style.visibility = "hidden";
}
}
//-->
+146
class GridPanel extends JPanel {
protected Point myLocation;
@Override
public Point location() {
return this.myLocation;
}
}
убивал бы за такое.
+159
std::ostringstream s;
for( std::list< Candidate* >::iterator it = order_by_priority.begin();
it != order_by_priority.end(); ){
s << (*it)->id << "/" << priorityDesc((*it)->priority());
it++;
if( it!= order_by_priority.end() )
s << ", ";
}
return s.str();
Странное обращение с циклом for.
+118
public class TWriteableForEach
{
public delegate void TForEachDelegate<TItem>(TItem item);
public static void Exec<TItem>(IList<TItem> itemsCollection, TForEachDelegate<TItem> forEachDelegate)
{
for (int i = 0; i < itemsCollection.Count(); ++i)
forEachDelegate(itemsCollection[i]);
}
} ;
Велосипед с квадратными колёсами?
−117
private function formatCallResult(data : String) : URLVariables
{
try
{
var urlVariables : URLVariables = new URLVariables(data);
MonsterDebugger.trace(this,[urlVariables.msgdesc,urlVariables.msgbody]);
var pattern : RegExp = /\[s](.+)\[\/s\]/ig //*new RegExp("\\[s\\]([\\w\\s]+)\\[/s\\]", "ig");*/
var msgdescReady : String = urlVariables.msgdesc.replace(pattern, "<b>$1</b>");
var msgbodyReady : String = urlVariables.msgbody.replace(pattern, "<b>$1</b>");
var pattern2 : RegExp = /\[n](.+)\[\/n\]/ig;
//TODO Write nice regexp instead !
urlVariables.msgdesc = msgdescReady;
urlVariables.msgbody = msgbodyReady;
msgdescReady = urlVariables.msgdesc.replace(pattern2, "<b>$1</b>");
msgbodyReady = urlVariables.msgbody.replace(pattern2, "<b>$1</b>");
urlVariables.msgdesc = msgdescReady;
urlVariables.msgbody = msgbodyReady;
MonsterDebugger.trace(this,[urlVariables.msgdesc,urlVariables.msgbody]);
}
catch (e : Error)
{
}
return urlVariables;
}
Я уже минут 10 силюсь понять, что же оно должно было делать...
−858
FUNCTION get_yesterday
RETURN DATE
AS
dd VARCHAR2 (2);
mm VARCHAR2 (2);
yy VARCHAR2 (4);
BEGIN
SELECT TO_CHAR (SYSDATE - 1, 'yyyy')
INTO yy
FROM DUAL;
END get_yesterday;
Вычисляем вчерашнюю дату на PL/SQL
+74
@Name("solr")
@AutoCreate
public class SolrClient {
@Create
public void init() {
try {
server = startRemoteSolr();
} catch (Exception e) {
log.error(e, e);
}
}
public SolrServer startRemoteSolr() throws MalformedURLException, SolrServerException {
CommonsHttpSolrServer solr = new CommonsHttpSolrServer("http://localhost:8983/solr");
solr.setRequestWriter(new BinaryRequestWriter());
return solr;
}
}
Seam. Перевод для непричастного: на старте сайта вызывается метод startRemoteSolr(). Solr - это поисковый движок. Если он не запустится, на сайте не будет работать поиск. И если на запуске Solr будет ошибка, то в лог она попадёт просто как exception + stack trace.
Что не так в коде? Очевидно, его писали люди, не задумываясь об эксплуатации, что свойственно новичкам. А ведь устранение проблем в рабочем сайте - это приоритет номер один. Сама разработка сайта, сидя в удобном кресле с кашкой кофе - где-то сильно ниже.
Так вот, что не так?
1. При выводе ошибок надо писать - что это за ошибка. В данном случае: "Запуск поисковика неудался, ПОИСК НА САЙТЕ РАБОТАТЬ НЕ БУДЕТ." И уже потом - stack trace.
2. Если некая ошибка связана с ресурсами - сетевыми, или на файловой системе, в логе надо также описывать этот ресурс. Т.е. "Не удалось запустить клиент поисковика по адресу http://localhost:8983/solr". Что бы из логов сразу было видно, что порт указан правильно или нет, хост и тд.
Но выпускникам ВМК МГУ такие вещи неведомы, они слишком крутые что бы опускаться до таких мелочей. Чайники, хуле.