- 1
https://tproger.ru/articles/frontend-roadmap-2021/
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
https://tproger.ru/articles/frontend-roadmap-2021/
Как много надо учить ради того, чтобы клепать красивые формочки.
Они там совсем ебанулись?
+1
using T = int;
0 .T::~T();
Чем-то меня эта (полностью валидная) коньструкция очаровала.
0
https://habr.com/ru/company/vk/blog/527420/
ВКонтакте снова выкладывает KPHP
....
Сгенерировать С++ из PHP — этого мало. Собственно говоря, это самое простое.
Во-первых, в PHP мы используем кучу функций стандартной библиотеки: header(),
mb_strlen(), curl_init(), array_merge(). Их тысячи — и все должны быть
реализованы внутри KPHP с учётом типизации и работать так же, как в PHP.
Реализация всего PHP stdlib (а также KPHP-дополнений), всех PHP-типов с
операциями и допущениями — это называется runtime, вон там квадратик сверху.
Во-вторых, PHP-сайт — это веб-сервер. Следовательно, и в KPHP должна быть вся
серверная часть, чтобы можно было в том же nginx подменить PHP-шный upstream
на KPHP-шный — и всё продолжало работать так же. KPHP поднимает свой веб-сервер,
оркестрирует процессы, заполняет суперглобалы и переинициализирует состояние,
как и PHP… Это тоже хардкорная часть — называется server, квадратик снизу.
И только имея результирующий код C++, написанные runtime и server, всё это можно
объединить и отдать на откуп плюсовым компиляторам. Мы используем g++ — там в
диаграмме есть квадратик g++. Но не совсем так: у vk.com настолько огромная
кодовая база, что этот компилятор не справляется, и поэтому мы применяем патченный
distcc для параллельной компиляции на множестве агентов. В итоге всё линкуется в
один огромный бинарник (это весь vk.com), он раскидывается на кучу бэкендов и
синхронно перезапускается. Каждая копия запускает мастер-процесс, который порождает
группу однопоточных воркеров. Вот они на самом деле и исполняют исходный PHP-код.
Многие технические проблемы остаются за кадром — их не опишешь в статье на Хабре.
Чего стоит один только сбор трейсов при ошибках: ведь в С++ не получить
человекочитаемый стек, а хочется разработчику вообще его на PHP-код намаппить.
Гигантское количество внутренних нюансов, множество подпорок и легаси — но в итоге
продукт хорошо работает и развивается.
PHP и C++... два говна нашли друг друга
+1
#define LEAP_YEAR_OR_NOT(year)( ( year % 4 ) ? ( 0 ) : ( 1 ) )
Тот кто это писал, видимо рассуждал примерно так:
- В 2100 году это конечно забагует, но это будет уже не моя проблема.
0
package java.util;
public final class Optional<T> {
public<U> Optional<U> map(Function<? super T, ? extends U> mapper) {
Objects.requireNonNull(mapper);
if (!isPresent())
return empty();
else {
return Optional.ofNullable(mapper.apply(value));
}
}
}
Они не только не знают, что else после if не нужен и лишь привносит лишний нестинг, они даже единый стиль расставления фигурных скобок выдержать не могут
0
<?php declare(strict_types=1);
/**
* This file is part of Swoft.
*
* @link https://swoft.org
* @document https://swoft.org/docs
* @contact [email protected]
* @license https://github.com/swoft-cloud/swoft/blob/master/LICENSE
*/
namespace Database;
use Swoft;
use Swoft\SwoftComponent;
/**
* Class AutoLoader
*
* @since 2.0
*/
class AutoLoader extends SwoftComponent
{
/**
* Class constructor.
*/
public function __construct()
{
parent::__construct();
Swoft::setAlias('@database', dirname(__DIR__) . '/database');
}
/**
* @return array
*/
public function getPrefixDirs(): array
{
return [
__NAMESPACE__ => __DIR__,
];
}
/**
* @return array
*/
public function metadata(): array
{
return [];
}
}
https://github.com/swoft-cloud/swoft/blob/master/database/AutoLoader.php
−3
Обращение.
Антонио, перепиши этот сайт на современный стек технологий. Очень рекомендую:
- Vue или React
- NodeJS или Go
- MongoDB
- побольше AJAX-а
Очень неютно находиться на технически устаревшем сайте - какой-то колхозный PHP, голый HTML, JS и jQuery... Твоим сайтом хочется гордиться, а не блеваться от него.
Новые фичи добавлять необязательно.
0
$snippet = preg_split('/'. $qs .'/i', $replace);
$c = 1;
foreach( $snippet as $snip ) {
$length = strlen( $snip ) * .3;
$xlength = strlen( explode( $qs, $snip )[0] );
if( $c % 2 !== 0 ) {
$highlight_1 = substr( $snip, $xlength * .3, $xlength );
}
else {
$highlight_2 = substr( $snip, 0, $length );
}
$c++;
}
$output .= '<dfn class="revolver__search-snippet">... '. preg_replace("#[^а-яА-ЯA-Za-z:;._,? -]+#u", '', $highlight_1) . '<mark>'. $qs .'</mark>'. preg_replace("#[^а-яА-ЯA-Za-z:.;_,? -]+#u", '', $highlight_2) .' ...</dfn></li>';
Pick — самая маленькая поисковая система на PHP и MySQL
Здесь пришлось повозиться. Простой подход совсем не подразумевал, что PHP начнет обрабатывать UTF-8 корректно, но я смог добиться работы с русским и английским языками.
https://habr.com/post/526652
0
#Это калькулятор
t=input("Введите колличество чисел (2 или 3): ")
if t == '3':
one=float(input("Введите первое число: "))
two=float(input("Введите второе число: "))
three=float(input("Введите третье число: "))
n=input("Введите первый знак: ")
if n != '+' and n != '-' and n != '*' and n != '/' :
print("Вы написали что-то неправильно")
else:
m=input("Введите второй знак: ")
if m != '+' and m != '-' and m != '*' and m != '/' :
print("Вы написали что-то неправильно")
else:
if n == '+':
if m == '+':
rez=one+two+three
print(rez)
elif m == '-':
rez=one+two-three
print(rez)
elif m == '*':
rez=one+two*three
print(rez)
elif m == '/':
rez=one+two/three
print(rez)
else:
print("Вы написали что-то неправильно")
elif n == '-':
if m == '+':
rez=one-two+three
print(rez)
elif m == '-':
rez=one-two-three
print(rez)
elif m == '*':
rez=one-two*three
print(rez)
elif m == '/':
rez=one-two/three
print(rez)
else:
print("Вы написали что-то неправильно")
elif n == '*':
if m == '+':
rez=one*two+three
print(rez)
elif m == '-':
rez=one*two-three
print(rez)
elif m == '*':
rez=one*two*three
print(rez)
elif m == '/':
rez=one*two/three
print(rez)
else:
print("Вы написали что-то неправильно")
elif n == '/':
if m == '+':
rez=one/two+three
print(rez)
elif m == '-':
rez=one/two-three
print(rez)
elif m == '*':
rez=one/two*three
print(rez)
elif m == '/':
rez=one/two/three
print(rez)
else:
print("Вы написали что-то неправильно")
else:
print("Вы написали что-то неправильно")
elif t == '2':
z=input("Введите знак: ")
if z != '+' and z != '-' and z != '*' and z != '/' :
print("Вы написали что-то неправильно")
else:
one=float(input("Введите первое число: "))
two=float(input("Введите второе число: "))
if z == '+':
rez=one+two
print(rez)
elif z == '-':
rez=one-two
print(rez)
elif z == '*':
rez=one*two
print(rez)
elif z == '/':
rez=one/two
print(rez)
else:
print("Вы написали что-то неправильно")
else :
print("Вы написали что-то неправильно")
Как можно сократить говнокод? Просто интересно... Спасибо)
−1
function in_array(what, where) {
for(var i=0; i<where.length; i++)
if(what == where[i])
return true;
return false;
}
Когда PHP'шному быдлокодеру не хватило функций в Javascript