Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Hed-kun

Программирование, т. 2

Рекомендованные сообщения

А я научился создавать мир 8к х 8к пикселей, размещать там звезды и мины. Если ты приблизишься к минам они активируются и гоняются за тобой по не взорвутся

Возьми лучше CryENGINE или UDK, и там посоздавай. И интереснее, и красивее, и продать потом можно если норм что получится :rickroll:

Поделиться сообщением


Ссылка на сообщение
(изменено)
1. PHP очень даже годный язык, раньше был тухловат и быдловат, но с появлением PDO и ООП все становится на свои места.

 

2. Рельсы хороши, удобны, но все же медленнее.

 

Пфф, это раньше руби был медленным, сейчас версия 1.9 дает фору и пхп и питону (http://www.unlimited...p-and-perl.html), а на подходе 2.0

Which+programming+languages+are+fastest%3f+%7C+Computer Language Benchmarks Game.jpg

 

Как на рельсах реализован http long pull request? Ну чтобы как на нодах было все

Вообще хз как реализован, поставил гем private pub и пользуюсь. Автоматом выбирается способ опроса, начиная от вебсокетов и заканчивая всякой экзотикой.

Вот скринкаст http://railscasts.com/episodes/316-private-pub , всё делается элементарно

 

основывается на библиотеке Faye (http://faye.jcoglan.com/), она и для рельс и для ноды подходит.


Изменено пользователем Vizakenjack

Поделиться сообщением


Ссылка на сообщение

а что нужно чтобы захостить рельсы?


Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение

а что нужно чтобы захостить рельсы?

Ну вдс вот подсказывают или хотябы модуль там апачный.

Поделиться сообщением


Ссылка на сообщение
(изменено)

Если нужен хостинг - берешь облако (которое является полноценным сервером) от selectel (на debian mini), я плачу 130 рублей в месяц по факту использования ресурсов, в любой момент можно расширить память и диск.

+ раньше можно было (может и сейчас пашет, не знаю) взять облако от амазона на 1 год нахаляву. С нормальным конфигом. Обычный шаред-хостинг я никогда не юзал и никогда не буду, поэтому посоветовать ничего не могу.

 

касты на рейлскастс офк.

ну еще http://tryruby.org/ и http://railsforzombies.org/

Лично я 70% инфы получил из http://guides.rubyonrails.org/ , 20% - на http://apidock.com/rails/, 10% - из гугля, Stackoverflow, и от некоторых знакомых

 

Из книг - Agile Web Development with Rails, охуенная, но новые рельсы выходят быстрее чем они успевают обновлять книгу, поэтому ищи самое последнее издание, вроде 4-ое.

 

 

а что нужно чтобы захостить рельсы?

Ну вдс вот подсказывают или хотябы модуль там апачный.

 

вдс - дорого, апач тормозит работу рельсов, никогда не ставь рельсы на апач. Я использую nginx + thin, правда для поддержки вебсокетов пришлось еще поставить HAProxy перед нджинксом.


Изменено пользователем Vizakenjack

Поделиться сообщением


Ссылка на сообщение

Привет, я оп предыдущего треда. Накидайте понятных, но в тоже время годных книг по php. Не хочу стать очередным быдлокодером.

Поделиться сообщением


Ссылка на сообщение

Привет, я оп предыдущего треда. Накидайте понятных, но в тоже время годных книг по php. Не хочу стать очередным быдлокодером.

Лучше 1000 книг http://rutracker.org/forum/viewtopic.php?t=4058812

Поделиться сообщением


Ссылка на сообщение

если ты пишешь на пхп то ты по дефолту быдлокодер

Ярлык на уровне "если сидишь на пд то ты по дефолту уебок"

Поделиться сообщением


Ссылка на сообщение
(изменено)

если ты пишешь на пхп то ты по дефолту быдлокодер

Ярлык на уровне "если сидишь на пд то ты по дефолту уебок"

ты лишний раз подтвердил правило. На пд сплошь и рядом уёбки, НО! есть и норм почаны. Так вот и в php, сплошь и рядом быдлокодеры, но есть и небольшая доля высококлассных спецов. Как-то так.

 

Думаю фраза: "Если ты начинаешь писать на php, то ты по дефолту будешь быдлокодером" более верно звучалa бы.


Изменено пользователем DIMAN123456789

Поделиться сообщением


Ссылка на сообщение

и тот пример что ты привел - это не избыток сахара, полное его отсутствие скорее

 

фу, для геттеров-сеттеров целую функцию писать надо

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

 

шарп пиздатый, писал на нем кое-чо по мелочи, достаточно удобно, почти не лазил в хелп. Из ОРМ юзал какую-то штуку, похожую на активрекорд в рельсах, SubSonic чтоли.

 

Вот только бесит типичный сишный синтаксис в стиле MySuperClass my_super_class = new MySuperClass()

объединять объявление переменной с присваиванием - моветон.


Публикация отключена

Поделиться сообщением


Ссылка на сообщение

если ты пишешь на пхп то ты по дефолту быдлокодер

Ярлык на уровне "если сидишь на пд то ты по дефолту уебок"

это на 101%% верно

 

если не пхп то что? перл? питон? имхо пхп лучшее что есть для начинающих и средняков

нeт


Публикация отключена

Поделиться сообщением


Ссылка на сообщение

 

ну да, мне для записи в бд приходилось проверять таким образом (быдлокод за пару минут, не что иное)

 

if(is_numeric($_GET['uid']) and isset($_GET['type']) and isset($_GET['game'])) {

if($_GET['type'] == 'set' or $_GET['type'] == 'remove' and $_GET['game'] == 'dota2' or $_GET['game'] == 'lol') {

Ну это полный пиздец :palevo:

 

я в своем фреймверке первым делом от такого пиздеца избавился, почему бы не написать обертку для всей этой хуйни?

Вот мой пример, конечно он жутко примитивный, но если нужно будет навернуть фильтры или еще какую хуйню, то это хотя бы все будет в одном месте:

class PageContext
{
private $requestGet;
private $requestPost;
private $requestRequest;
private $requestCookie;
private $requestSession;
private $httpReferer;
public function __construct($post, $get, $request, $session, $cookie)
{
	$this->requestGet = new DefaultRequest($get);
	$this->requestPost = new DefaultRequest($post);
	$this->requestRequest = new DefaultRequest($request);
	$this->requestSession = new SessionRequest($session);
	$this->requestCookie = new CookieRequest($cookie);
	$this->httpReferer = $_SERVER['HTTP_REFERER'];
}
public function getCookie()
{
	return $this->requestCookie;
}
public function getSession()
{
	return $this->requestSession;
}
public function getParameter($name)
{
	return $this->requestRequest->getParameter($name);
}
public function getHttpReferer()
{
	return $this->httpReferer;
}
}

interface Request
{
public function getParameter($name);
public function setParameter($name, $value);
public function getRequest();
}

class DefaultRequest implements Request
{
protected $request;

public function __construct($req)
{
	$this->prepareRequest($req);
}

private function prepareRequest($req)
{
	 $this->request = $req;
}

public function getRequest()
{
	return $this->request;
}

public function getParameter($name)
{
	if(isset($this->request[$name]))
	{
		return $this->request[$name];
	}
	return "";
}

public function setParameter($name, $value)
{
	$this->request[$name] = $value;
}
}

class SessionRequest extends DefaultRequest implements Request
{
public function setParameter($name, $value)
{
	$_SESSION[$name] = $value;
	$this->request[$name] = $value;
}
}

class CookieRequest extends DefaultRequest implements Request
{
private $expire = 72000;

public function setParameter($name, $value)
{
	setcookie($name, $value, time()+ $this->expire);
	$this->request[$name] = $value;
}
}

Соответственно создаю контекст сразу при заходе на страницу и юзаю через API, как то так у тебя бы выглядело:

$pageContext = new PageContext($_POST, $_GET, $_REQUEST, $_SESSION, $_COOKIE);
if($pageContext->getParameter('type') == 'set' or $pageContext->getParameter('type') == 'remove' and $pageContext->getParameter('game') == 'dota2' or $pageContext->getParameter('game') == 'lol') {

 

ты очень любишь сладкое. так и до диабета недалеко

Написать пару get-теров и set-теров теперь считается сахаром? :hmm: Что ты тогда скажешь об этом, дружок, банальная монада maybe:

 

 

public interface Bindable<T>
{
<E> Bindable<E> bind(Function<T, Bindable<E>> function);
}

public class Maybe<T> implements Bindable<T>
{
private final State<T> state;
public static <T> Maybe<T> just(T value)
{
	return new Maybe<T>(new Just<T>(value));
}
public static <T> Maybe<T> nothing()
{
	return new Maybe<T>((State<T>) Nothing.INSTANCE);
}
private Maybe(State<T> state)
{
	this.state = state;
}

@Override
public <E> Bindable<E> bind(final Function<T, Bindable<E>> function)
{
	return state.accept(new StateVisitor<T, Bindable<E>>()
	{
		@Override
		public Bindable<E> visitJust(T value)
		{
			return function.apply(value);
		}
		@Override
		public Bindable<E> visitNothing()
		{
			return nothing();
		}
	});
}
@Override
public String toString()
{
	return Objects.toStringHelper(this)
			.add("state", state)
			.toString();
}
private static interface State<T>
{
	<E> E accept(StateVisitor<T, E> visitor);
}
private static interface StateVisitor<T, E>
{
	E visitJust(T value);
	E visitNothing();
}
private static class Just<T> implements State<T>
{
	private final T value;
	private Just(T value)
	{
		this.value = value;
	}
	@Override
	public <E> E accept(StateVisitor<T, E> visitor)
	{
		return visitor.visitJust(value);
	}
	@Override
	public String toString()
	{
		return Objects.toStringHelper(this)
				.add("value", value)
				.toString();
	}
}
private static enum Nothing implements State<Object>
{
	INSTANCE;
	@Override
	public <E> E accept(StateVisitor<Object, E> visitor)
	{
		return visitor.visitNothing();
	}

	@Override
	public String toString()
	{
		return "Nothing";
	}
}
}

 

 

Error 65 'Nothing' does not contain a definition for 'INSTANCE'


Публикация отключена

Поделиться сообщением


Ссылка на сообщение

и тот пример что ты привел - это не избыток сахара, полное его отсутствие скорее

 

фу, для геттеров-сеттеров целую функцию писать надо

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

 

шарп пиздатый, писал на нем кое-чо по мелочи, достаточно удобно, почти не лазил в хелп. Из ОРМ юзал какую-то штуку, похожую на активрекорд в рельсах, SubSonic чтоли.

 

Вот только бесит типичный сишный синтаксис в стиле MySuperClass my_super_class = new MySuperClass()

объединять объявление переменной с присваиванием - моветон.

 

лишние линии кода - для уебков

Поделиться сообщением


Ссылка на сообщение

и тот пример что ты привел - это не избыток сахара, полное его отсутствие скорее

 

фу, для геттеров-сеттеров целую функцию писать надо

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

 

шарп пиздатый, писал на нем кое-чо по мелочи, достаточно удобно, почти не лазил в хелп. Из ОРМ юзал какую-то штуку, похожую на активрекорд в рельсах, SubSonic чтоли.

 

Вот только бесит типичный сишный синтаксис в стиле MySuperClass my_super_class = new MySuperClass()

объединять объявление переменной с присваиванием - моветон.

 

лишние линии кода - для уебков

у тебя просто слишком маленький монитор


Публикация отключена

Поделиться сообщением


Ссылка на сообщение

Пхп вообще надо изучать как дополнительный язык.

Более того, очень желательно знать как работают сети, протоколы, айпи адреса и т.д.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...