Skip to content

Instantly share code, notes, and snippets.

View asaelko's full-sized avatar
:octocat:
Working from home

Bogdevich Gleb asaelko

:octocat:
Working from home
View GitHub Profile
#!/bin/sh
echo "Было занято в кеше ОЗУ"
free
# Чистим pagecache:
sync
echo 1 | sudo tee -a /proc/sys/vm/drop_caches
#Чистим dentrie и inode кэши:
sync
echo 2 | sudo tee -a /proc/sys/vm/drop_caches
#Чистим pagecache, dentrie и inode кэши:
@asaelko
asaelko / gist:417eba8bd24849c9a370
Last active August 29, 2015 14:27
mssql logging
USE logistic
GO
IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME= 'Audit')
CREATE TABLE Audit
(
AuditID [int]IDENTITY(1,1) NOT NULL,
Type char(1),
TableName varchar(128),
PrimaryKeyField varchar(1000),
@asaelko
asaelko / review.md
Last active June 6, 2016 14:08
review.md

Review

Общий подход

Некорректно используется сама модель MVC: в частности, в контроллерах *Admin присутствует всего один метод actionIndex(). Так проще обращаться c json-ом, передавая в post-параметрах действие, которое необходимо совершить, но лучше все-таки использовать для каждого действия с моделью свой отдельный путь — легче дебажить, легче ориентироваться в коде, легче переиспользовать код, легко потом прикрутить какой-нибудь backbone с использованием уже почти готового restful api

Не нашли валидации приходящих с клиента данных (возможно, не там искали) — насколько помню, в Yii что-то было. По исходникам Yii я не вижу в QueryBuilder'e какой-либо проверки данных в условии запроса — есть вероятность sql-инъекции.

Частные случаи

if-ы можно разворачивать, чтобы избежать больших уровней вложенности и повышать читабельность кода. Существенно поможет писать код позднее, если ветки условий будут разрастаться.

<?php
function write_php_ini($array, $file)
{
$res = array();
foreach ($array as $key => $val) {
if (is_array($val)) {
$res[] = "[$key]";
foreach ($val as $skey => $sval) $res[] = "$skey = " . (is_numeric($sval) ? $sval : '"' . $sval . '"');
} else $res[] = "$key = " . (is_numeric($val) ? $val : '"' . $val . '"');
import (
"math/big"
"math/rand"
"time"
)
func SplitPQ(pq *big.Int) (p1, p2 *big.Int) {
value_0 := big.NewInt(0)
value_1 := big.NewInt(1)
value_15 := big.NewInt(15)