Ответы пользователя по тегу Веб-разработка
  • Какой выбрать язык для создания сайтов?

    Недавно знакомый тоже стал меня распрашивать на тему выбора php или что-то ещё для сайтов. Подумав я пришёл к выводу, что по большому счёту можно выделить несколько основных критериев для сравнения:
    1) Парадигма программирования синхронность/асинхронность.
    2) Количество готовых решений (gems, composer и т.п.).
    3) Поддержка языка сообществом и ментейнерами.
    4) Лаконичность синтаксиса.
    5) Простота рефакторинга.

    Если рассматривать php, то:
    1) синхронная парадигма, хотя есть попытки сделать некоторые вещи асихнронным, типа проектов phpDaemon или например вызовы mysqlnd;
    2) на Packagist сегодня уже достаточно много накопилось готовых пакетов, чтобы не изобретать всюду велосипед + зрелые фреймворки;
    3) язык существует уже более 10 лет, а скорость развития за последние 3 года выросла на порядок;
    4) с лаконичностью не всё гладко, есть избыточная многословность, но есть и похуже языки в этом плане, типа Objective-C
    5) вполне сносный рефакторинг, в этом отношении у руби должен быть похуже, поскольку он более "динамичный", но у Java на голову выше из-за статической типизации.

    В общем, отток народа из PHP в последние лет 5 обусловлен преимущественно тем, что появились достойные альтернативы + было очень вялое развитие языка и большое количество проектов с legacy кодом.
    Ответ написан
  • А у вас есть свой проект, если нет почему?

    Есть скорее проекты, которые поддерживаю в состоянии работоспособности и изредка находится время на небольшие доработки.
    Новых идей для своих проектов в вебе нет. Да и надо ли? Это лет 10 назад хотелось что-то делать уникальное для того времени. А сегодня всё нужное и так уже есть.
    Думал изучить разработку под андроид или ios, т.к. это дико популярно и легко монетизируемо сегодня, но не вижу я потенциала, пока не выйдет новый класс устройств, типа Google Glass, имхо рынок перегрет. Игры примитивны в силу природы платформы. Реальных полезностей по пальцам пересчитать.
    В общем, лучше направить свои силы на повышение квалификации через книги/курсы или посвятить семье.
    Ответ написан
  • Nginx и два сайта на одном домене

    Дарю универсальный конфиг для кучи проксируемых черех nginx доменов c автоматическим редиректом доменов с www на без www. Сервер на Убунту.

    nginx.conf
    user www-data;
    worker_processes 1;
    pid /var/run/nginx.pid;
    
    events {
    	worker_connections 4096;
    	multi_accept on;
    }
    
    http {
    
    
    	sendfile on;
    	tcp_nopush on;
    	tcp_nodelay on;
    	keepalive_timeout 65;
    	client_max_body_size 100M;
    	types_hash_max_size 2048;
    
    	server_names_hash_bucket_size 64;
    
    	include /etc/nginx/mime.types;
    	default_type application/octet-stream;
    
    
    	access_log /var/log/nginx/access.log;
    	error_log /var/log/nginx/error.log;
    
    
    	gzip on;
    	gzip_disable "msie6";
    
    	gzip_vary on;
    	gzip_proxied any;
    	gzip_comp_level 5;
    	gzip_buffers 16 8k;
    	gzip_http_version 1.1;
    	gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    
    	map $host $host_wo_www {
    		default $host;
    		~^www\.(?P<wo_www>.+)$ $wo_www;
    	}
    	include /etc/nginx/conf.d/*.conf;
    	include /etc/nginx/sites-enabled/*;
    }
    
    


    В sites-enabled/default
    server {
    	listen 80;
    	server_name ~^(?:www\.)?(?P<host_wo_www>.+)$;
    	server_name_in_redirect	off;
    	resolver	127.0.0.1;
    
    	access_log	/var/log/httpd/$host/access.log;
    	location	~* \.(?:jpe?g|gif|png|ico|css|zip|tgz|gz|rar|bz2|dic|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$
    	{
    		root	/var/www/$host_wo_www/www;
    		access_log off;
    		expires	30d;
    		add_header Pragma public;
    		add_header Cache-Control public;
    	}
    
    	location / {
    		root	/var/www/$host_wo_www/www;
    		index	index.html index.htm index.php;
    		access_log	off;
    		proxy_pass http://127.0.0.1:8081;
    		proxy_set_header X-Real-IP $remote_addr;
    		proxy_set_header Host $host;
    		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    	}
    }
    
    Ответ написан