Биз жөнүндөБлогБайланыш
Веб иштеп чыгуу2011-ж., 14-август 3 мин 9

Кыргызстандагы биринчи веб-тиркемелер: 2011-жылдын технологиялык тажрыйбасы

AunimedaAunimeda
📋 Мазмуну

Кыргызстандагы биринчи веб-тиркемелер: 2011-жылдын технологиялык тажрыйбасы

2011-жылы биз Бишкекте онлайн-тиркеме жасап баштаганда, эң негизги суроо мындай болчу: сервер кайда жайгашат?

Кыргызстандын өзүндө data-центр жок болчу. VPS хостинг компаниялары жок болчу. Варианттар: Москвадагы сервер (ping 80–120мс), Германиядагы сервер (ping 140–200мс), же Украинадагы (ping 100–150мс). Колдонуучуларыбыз Бишкекте, сервер 5000 километр алыс.

Бул жерде биз жасаган биринчи туура чечим — Москвада хостинг алганыбыз. Ping башка опциялардан эки эсе аз болчу.


PHP жана MySQL: негизги стек

2011-жылы PHP 5.3 жана MySQL 5.1 — стандарт болчу. Framework катары Kодeigniter колдонгонбуз (Laravel 1.0 эми чыга баштаган кез болчу, продакшнга даяр эмес). ORM жок, таза SQL-суроолор.

<?php
// Ошол кезде жазган типичный код
class UserModel {
    private $db;
    
    public function __construct() {
        $this->db = new CI_DB();
    }
    
    public function getUserById($id) {
        $query = $this->db->query(
            "SELECT id, name, email, created_at 
             FROM users 
             WHERE id = ? AND is_active = 1",
            array((int)$id)
        );
        return $query->row();
    }
    
    public function getUserPosts($userId, $limit = 10) {
        // 2011-жылы JOIN жазуу "чеберчилик" деп эсептелчү
        $query = $this->db->query(
            "SELECT p.id, p.title, p.created_at, u.name as author
             FROM posts p
             INNER JOIN users u ON p.user_id = u.id  
             WHERE p.user_id = ?
             ORDER BY p.created_at DESC
             LIMIT ?",
            array((int)$userId, (int)$limit)
        );
        return $query->result();
    }
}

Кыргызча мазмун — техникалык кыйынчылык

2011-жылда кыргызча текст менен иштөө — өзүнчө маселе болчу.

UTF-8 баары жерде: MySQL tablелерин utf8_general_ci collation менен жасабасаң, кыргыз тамгалары (ң, ү, ө, ж ж.б.) базада ???? болуп сакталчу. Бул мааселени 3–4 жолу башынан кечирдик.

-- Туура конфигурация (2011-жылы унутула берчү)
CREATE TABLE content (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci,
    body TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci,
    lang ENUM('ky','ru','en') DEFAULT 'ky'
) CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE=InnoDB;

-- MySQL туташуусун дагы орнотуу керек
mysql_query("SET NAMES utf8");
mysql_query("SET CHARACTER SET utf8");

Кыргызча менен орусча бирге: платформада эки тил болчу. Content таблицасына lang талаасын кошуп, ар бир мазмун үчүн ар бир тилде жазуу сакталчу. Азыркы i18n frameworks жок болчу — баарын кол менен жасачубуз:

// Тил логикасы — жөнөкөй, бирок иштечү
function getContent($id, $lang = 'ru') {
    $content = $this->db->query(
        "SELECT * FROM content WHERE id = ? AND lang = ?",
        array($id, $lang)
    )->row();
    
    // Эгер кыргызча жок болсо, орусча кайтар
    if (!$content && $lang === 'ky') {
        $content = $this->db->query(
            "SELECT * FROM content WHERE id = ? AND lang = 'ru'",
            array($id)
        )->row();
    }
    
    return $content;
}

Жайылтуу: SSH жана FTP

2011-жылы "деплоймент" деген — SSH аркылуу серверге кирүү жана файлдарды өзгөртүү.

# Типичный "деплоймент" процесс
ssh user@server.ru

cd /var/www/myproject
git pull origin main          # Git 2010-жылдан баштап колдонгонбуз
php artisan migrate           # Же вручную SQL файлды жүктөтчүбүз

service apache2 restart       # Же: /etc/init.d/apache2 reload

Эгер бирдеме бузулса — rollback дегени git checkout болчу. Staging environment жок болчу. Баарын продакшнда тестирдик. Ушундай болчу.


Жетишкен нерселер

2011-жылы биз Бишкекте сатуу платформасы деген жасадык. Ошол убакта Кыргызстанда онлайн-соода мүмкүнчүлүгү болгон платформа болгон эмес. Учурдагы стандарттар боюнча техника жөнөкөй, код кемчиликтүү. Бирок ошол учур үчүн бул — реалдуу чечим болчу.

Негизги сабак: технология абсолют мааниде "жакшы" же "жаман" болбойт. Ал ошол убактагы команданын мүмкүнчүлүгүнө, рыноктун шартына жана колдонуучулардын реалдуу муктаждыгына жараша баа берилет.

2011-жылдагы Кыргызстан рыногу үчүн PHP + MySQL + Москвадагы сервер + мобилдик GPRS колдоосу — бул туура архитектура болчу. 2025-жылы ошол эле чечим — туура эмес болор эле. Технология убакыт менен бирге өзгөрөт. Принцип калат: реалдуу колдонуучуну жана реалдуу шартты биринчи орунга кой.

Биз 2011-жылы Бишкекте иштеп чыкканды бүгүн дагы колдонобуз — рыноктун чынчыл баасы катары.

Ошондой эле окуңуз

Vue.js менен биринчи долбоор: Бишкектеги тажрыйба (2016)aunimeda
Frontend

Vue.js менен биринчи долбоор: Бишкектеги тажрыйба (2016)

Vue.js 2.0 2016-жылдын октябрь айында чыкты. React'ка салыштырмалуу жеңилирек үйрөнүлгөн. Биз Бишкектеги бир кардар үчүн онлайн-дүкөндүн себет бөлүмүн Vue.js менен жасадык. Components, reactivity, Vuex — реалдуу мисалдар менен.

Express.js менен REST API сервер кантип жасоо: нөлдөн production'го чейин (2015)aunimeda
Backend

Express.js менен REST API сервер кантип жасоо: нөлдөн production'го чейин (2015)

Node.js 4 LTS + Express.js 4 — 2015-жылда PHP'га альтернатива катары пайда болду. Биз Бишкекте мобилдик тиркеме үчүн API сервер жасадык. Роутинг, middleware, валидация, JWT авторизация, MySQL — бардыгы бир жерде. Иштеген код мисалдары.

React Native менен биринчи мобилдик тиркеме жасоо: Бишкек тажрыйбасы (2015)aunimeda
Мобилдик иштеп чыгуу

React Native менен биринчи мобилдик тиркеме жасоо: Бишкек тажрыйбасы (2015)

React Native 2015-жылдын март айында Facebook тарабынан жарыяланды. Биз iOS жана Android үчүн бир эле код жазуу мүмкүнчүлүгүнө ишандык. Биринчи production тиркемебизди 8 апта ичинде жасадык. Реалдуу код, реалдуу проблемалар, реалдуу жыйынтыктар.

Бизнесиңизге IT иштеп чыгуу керекпи?

Веб-сайттарды, мобилдик тиркемелерди жана AI чечимдерин иштеп чыгабыз. Акысыз консультация.

Консультация алуу Бардык макалалар