- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
function getLastItemName( $items ) {
$lastItemName = '';
foreach( $items as $item ) {
$lastItemName = $item['name'];
}
return $lastItemName;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+3
function getLastItemName( $items ) {
$lastItemName = '';
foreach( $items as $item ) {
$lastItemName = $item['name'];
}
return $lastItemName;
}
Имеем в проекте кучу россыпей подобного вида.
Собственно, существует ли эффективный способ с этим бороться?
0
// channel.h
#pragma once
namespace AMQP {
class Channel
{
private:
std::shared_ptr<ChannelImpl> _implementation;
public:
Channel(Connection *connection) : _implementation(new ChannelImpl())
{
// attach the connection to the channel
_implementation->attach(connection);
}
Channel(const Channel &channel) = delete;
virtual ~Channel()
{
// close the channel (this will eventually destruct the channel)
_implementation->close();
}
//...
};
// ---------------------------------------------------------
// amqpcpp.h
/**
* AMQP.h
*
* Starting point for all includes of the Copernica AMQP library
*
* @documentation public
*/
#pragma once
// base C++ include files
#include <vector>
#include <string>
#include <memory>
#include <map>
//...
// base C include files
#include <stdint.h>
#include <math.h>
// forward declarations
#include <amqpcpp/classes.h>
// utility classes
#include <amqpcpp/endian.h>
#include <amqpcpp/buffer.h>
#include <amqpcpp/bytebuffer.h>
//...
// amqp types
#include <amqpcpp/field.h>
#include <amqpcpp/numericfield.h>
#include <amqpcpp/decimalfield.h>
#include <amqpcpp/stringfield.h>
//...
// envelope for publishing and consuming
#include <amqpcpp/metadata.h>
#include <amqpcpp/envelope.h>
#include <amqpcpp/message.h>
// mid level includes
#include <amqpcpp/exchangetype.h>
#include <amqpcpp/flags.h>
#include <amqpcpp/callbacks.h>
#include <amqpcpp/deferred.h>
#include <amqpcpp/deferredconsumer.h>
#include <amqpcpp/deferredqueue.h>
#include <amqpcpp/deferreddelete.h>
#include <amqpcpp/deferredcancel.h>
#include <amqpcpp/deferredget.h>
#include <amqpcpp/channelimpl.h>
#include <amqpcpp/channel.h>
//...
https://github.com/CopernicaMarketingSoftware/AMQP-CPP
+2
class Order_OrderProcessorBuilder
{
/**
* @param $processorName
* @return Order_Abstract_OrderAbstract
*/
private static function createOrderProcessor($processorName)
{
$processorClassName = 'Order_Types_'.ucfirst($processorName);
return new $processorClassName;
}
/**
* @param $builderName
* @param Order_Abstract_OrderAbstract $orderProcessor
* @return Order_Abstract_BuilderAbstract
*/
private static function createOrderBuilder($builderName, Order_Abstract_OrderAbstract $orderProcessor)
{
$builderClassName = 'Order_Builders_'.ucfirst($builderName);
return new $builderClassName($orderProcessor);
}
/**
* @param Order_Abstract_BuilderAbstract $orderBuilder
* @return Order_Director
*/
private static function createDirectorClass(Order_Abstract_BuilderAbstract $orderBuilder)
{
return new Order_Director($orderBuilder);
}
/**
* @param $orderTypeName
* @return Order_Abstract_OrderAbstract
*/
public static function build($orderTypeName)
{
/** @var Order_Abstract_OrderAbstract $orderProcessor */
$orderProcessor = self::createOrderProcessor($orderTypeName);
/** @var Order_Abstract_BuilderAbstract $orderBuilder */
$orderBuilder = self::createOrderBuilder($orderTypeName, $orderProcessor);
$director = self::createDirectorClass($orderBuilder);
$director->construct();
return $orderBuilder->getResult();
}
}
Вот такая у нас есть прослойка, которая работает с паттероном "строитель", честно говоря недавно понял зачем она нужна, не знаю.. Как вам решение? Код не мой
+6
#include <bits/stdc++.h>
#define MP make_pair
#define PB push_back
#define int long long
#define st first
#define nd second
#define rd third
#define FOR(i, a, b) for(int i =(a); i <=(b); ++i)
#define RE(i, n) FOR(i, 1, n)
#define FORD(i, a, b) for(int i = (a); i >= (b); --i)
#define REP(i, n) for(int i = 0;i <(n); ++i)
#define VAR(v, i) __typeof(i) v=(i)
#define FORE(i, c) for(VAR(i, (c).begin()); i != (c).end(); ++i)
#define ALL(x) (x).begin(), (x).end()
#define SZ(x) ((int)(x).size())
#ifdef LOCAL
#define debug(x) {cerr <<#x<<" = " <<x<<"\n"; }
#define debug2(x, y) {cerr <<#x<<" = " <<x<<", "<<#y <<" = " <<y <<"\n";}
#define debug3(x, y, z) {cerr <<#x<<" = " <<x<<", "<<#y <<" = " <<y <<", "<<#z<<" = "<<z<<"\n";}
#define debug4(x, y, z, t) {cerr <<#x<<" = " <<x<<", "<<#y <<" = " <<y <<", "<<#z<<" = "<<z<<", "<<#t <<" = " <<t<<"\n";}
#define debugv(x) {{cerr <<#x <<" = "; FORE(itt, (x)) cerr <<*itt <<", "; cerr <<"\n"; }}
#else
#define debug(x)
#define debug2(x, y)
#define debug3(x, y, z)
#define debug4(x,y,z,t)
#define debugv(x)
#define cerr if(0)cout
#endif
#define make(type, x) type x; cin>>x;
#define make2(type, x, y) type x, y; cin>>x>>y;
#define make3(type, x, y, z) type x, y, z; cin>>x>>y>>z;
#define make4(type, x, y, z, t) type x, y, z, t; cin>>x>>y>>z>>t;
#define next ____next
#define prev ____prev
#define left ____left
#define hash ____hash
using namespace std;
typedef long long ll;
typedef long double LD;
typedef pair<int, int> PII;
typedef pair<ll, ll> PLL;
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<ll> VLL;
typedef vector<pair<int, int> > VPII;
typedef vector<pair<ll, ll> > VPLL;
Даже #define int long long есть
http://codeforces.com/contest/575/submission/12867420
+142
<?php
$self=$_SERVER['PHP_SELF'];
if (isset($_GET['page'])) { $page=$_GET['page'];} else {$page=1;}
$pages=25;
$page_offset=5;
$unique_links=9;
if ($page != 1) { // Don't show back link if current page is first page.
$back_page = $page-1;
echo("<a href=\"$self?page=$back_page\">prev</a> \n");}
for ($i=1; $i <= $pages; $i++) {
if ($i == $page) {
echo("<b>$i</b>\n");// If current page don't give link, just text.
} else {
if (($i>$page-$page_offset) && ($i<$page+$page_offset) && ($page>$page_offset)) {
echo("<a href=\"$self?page=$i\">$i</a> \n");
}
elseif (($i<=$unique_links) && ($page<=$page_offset)) {
echo("<a href=\"$self?page=$i\">$i</a> \n");
}
elseif (($i>$pages-$unique_links) && ($page>$pages-$page_offset)) {
echo("<a href=\"$self?page=$i\">$i</a> \n");
}
}
}
if (!($page >= $pages) && $pages != 1) { // If last page don't give next link.
$next_page = $page + 1;
echo("<a href=\"$self?page=$next_page\">next</a>");}
?>
Адовый аромат (хоть и рабочий), понимаю, но помогите упростить, пожалуйста. Условия внутри цикла скорее всего избыточны.
Вкратце: "плавающий" пагинатор, 9 уникальных ссылок.
+56
std::map<int, int> aSummator; //Массив частичных сумм
std::vector<int> v; //Исходный массив
void InitSummator()
{
aSummator[0] = v[0];
aSummator[-1] = 0;
for(int i = 1; i < int(v.size()); i++)
{
aSummator[i] = aSummator[i - 1] + v[i];
}
}
int GetSum(int l, int r)
{
return aSummator[r] - aSummator[l - 1];
}
Как я писал сумматор 0.1 года назад. Вместо того, чтобы написать один if, я использовал std::map, что увеличило ассимптотику алгоритма на запрос с O(1) до O(log(n)). Но задачу при тех ограничениях (в массиве до 100000 элементов, запросов не более 100000) алгоритм решил. Преподу, естественно, показывать забоялся.
+67
public boolean isUsing(AttributeType type) {
return (this.attributeTypes.indexOf(type) >= 0);
}
низкоуровневое программирование
+74
public void setSkyboxName(String skyboxName) {
if (skyboxName != null && skyboxName.length() > 2) {
this.setSkybox(new SkyBox(skyboxName));
} else {
this.setSkybox(null);
}
}
если имя неба длинна > 2 значит создать новое небо,
а иначе неба не будет вообще
+145
/* */
int fooBar() {
/* do something */
/* - */ return NULL;
/* + */ return 0ULL;
}
> src/foobar.c:42:3: warning: return makes integer from pointer without a cast
> return NULL;
П О Ч И Н Е Н О
+103
if (openFileDialog1.ShowDialog().ToString() == "OK")
не хватает еще
if(1.ToString() == "1")