Giter VIP home page Giter VIP logo

feature-sliced / documentation Goto Github PK

View Code? Open in Web Editor NEW
1.3K 20.0 132.0 159.23 MB

🍰 Architectural design methodology for Frontend projects

Home Page: https://feature-sliced.design

License: MIT License

JavaScript 16.33% SCSS 5.00% TypeScript 18.40% MDX 60.27%
isolation principles methodology architecture domain-driven separation-of-concerns vertical-slices pattern feature-based hacktoberfest

documentation's Introduction

Discord (English language)Telegram (Russian language)WebsiteFeature-Sliced Design, an architectural methodology for frontend projectsFeature-Sliced Design, an architectural methodology for frontend projects

All Contributors

Feature-Sliced Design (FSD) is an architectural methodology for scaffolding front-end applications. Simply put, it's a compilation of rules and conventions on organizing code. The main purpose of this methodology is to make the project more understandable and structured in the face of ever-changing business requirements.

This methodology is not tied to a particular stack — it can be used for web or native applications.

Advantages

  • Uniformity
    The code is organized by scope of influence (layers), by domain (slices), and by technical purpose (segments).
    This creates a standardized architecture that is easy to comprehend for newcomers.

  • Controlled reuse of logic
    Each architectural component has its purpose and predictable dependencies.
    This keeps a balance between following the DRY principle and adaptation possibilities.

  • Stability in face of changes and refactoring
    A module on a particular layer cannot use other modules on the same layer, or the layers above.
    This enables isolated modifications without unforeseen consequences.

  • Orientation to business and users needs
    When the app is split into business domains, you can navigate the code to discover and deeper understand all the project features.

Show off

To show off that your project uses FSD, you can use the GitHub topic feature-sliced and one of the following badges:

Feature-Sliced Design Feature-Sliced Design Feature-Sliced Design Feature-Sliced Design

Code snippet
White: 
[![Feature-Sliced Design][shields-fsd-white]](https://feature-sliced.design/)

[shields-fsd-white]: https://img.shields.io/badge/Feature--Sliced-Design?style=for-the-badge&labelColor=262224&color=F2F2F2&logoWidth=10&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAaCAYAAAC3g3x9AAAACXBIWXMAAALFAAACxQGJ1n/vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAA/SURBVHgB7dKxCgAgCIThs/d/51JoNQIdDrxvqMXlR4FmFs92KDIX/wI7JSdDN+eHtkxIycnQvMNW8hN/crsDc5QgGX9NvT0AAAAASUVORK5CYII=

----

Pain (red):
[![Feature-Sliced Design][shields-fsd-pain]](https://feature-sliced.design/)

[shields-fsd-pain]: https://img.shields.io/badge/Feature--Sliced-Design?style=for-the-badge&labelColor=262224&color=F2F2F2&logoWidth=10&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAaCAYAAAC3g3x9AAAACXBIWXMAAALFAAACxQGJ1n/vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABHSURBVHgB7dKxCQAgDETR08ZNHNBBHNBNrBQFuyCCKQK5V6QMfBJAWVij5zLwKbW6d0VYx2TZyXnBKxvEZJnDx2bylf1kdRM6tiAZsruQ/QAAAABJRU5ErkJggg==

----

Domain (blue):
[![Feature-Sliced Design][shields-fsd-domain]](https://feature-sliced.design/)

[shields-fsd-domain]: https://img.shields.io/badge/Feature--Sliced-Design?style=for-the-badge&color=F2F2F2&labelColor=262224&logoWidth=10&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAaCAYAAAC3g3x9AAAACXBIWXMAAALFAAACxQGJ1n/vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABISURBVHgB7dKxCQAgDETR0w2cws0cys2cwhEUBbsggikCuVekDHwSQFlYo7Q+8KnmtHdFWMdk2cl5wSsbxGSZw8dm8pX9ZHUTMBUgGU2F718AAAAASUVORK5CYII=

----

Feature (green):
[![Feature-Sliced Design][shields-fsd-feature]](https://feature-sliced.design/)

[shields-fsd-feature]: https://img.shields.io/badge/Feature--Sliced-Design?style=for-the-badge&labelColor=262224&color=F2F2F2&logoWidth=10&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAaCAYAAAC3g3x9AAAACXBIWXMAAALFAAACxQGJ1n/vAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAABISURBVHgB7dKxCQAgDETR00EcwYEc0IEcwUUUBbsggikCuVekDHwSQFlYo/Y88KmktndFWMdk2cl5wSsbxGSZw8dm8pX9ZHUTdIYgGbPdU2QAAAAASUVORK5CYII=

How can I help?

  • 🍰 Use the methodology in your projects and spread the word
  • ⭐ Star us on GitHub
  • 💬 Join our Discord or Telegram and share your experience or ask questions
  • 📝 Suggest improvements to the documentation through PRs

discord          tg          twitter         youtube

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Sergey Sova
Sergey Sova

📝 📖 💡 🤔 📆 💬 🚇 🔬 📋 📢 🚧
Ilya Azin
Ilya Azin

📖 💡 🤔 📆 💬 👀 🚇 📓 🎨 📢 🚧
Rin 🦊🪐😈 Akaia
Rin 🦊🪐😈 Akaia

📖 🖋 🤔 💬 🌍 📢 🚧 🔬
Alexander Khoroshikh
Alexander Khoroshikh

📖 🤔 💬 👀 🔧 🛡️ 📢 🚧
Bear Raytracer
Bear Raytracer

📖 💡 🤔 💬 👀 🌍 🎨 🚇 🚧
spotsccc
spotsccc

📖 💡 🤔 💬 👀 🚧
Ilya
Ilya

📖 🤔 📢 🚧
Viktor Pasynok
Viktor Pasynok

📖 🤔 📆 📢
Oleh
Oleh

📖 🤔
Niyaz
Niyaz

💡 📓
Evgeniy Podgaetskiy
Evgeniy Podgaetskiy

🤔
Viacheslav Zinovev
Viacheslav Zinovev

🎨 📓 👀
Alexandr
Alexandr

🤔 📓 👀
Oleg Isonen
Oleg Isonen

🤔 🔬 📓
Evgeniy
Evgeniy

💻 🔌 🔧
Lev Chelyadinov
Lev Chelyadinov

📖 🖋 🤔 🎨
And
And

🚇 📖 💻
sarmong
sarmong

📖 🌍
Julie Obolenskaya
Julie Obolenskaya

🌍
Roman Tikhiy
Roman Tikhiy

📓 📖
Igor Kamyshev
Igor Kamyshev

🐛 📖
Roman
Roman

📓 📖
Sergey Vakhramov
Sergey Vakhramov

🎨
Mark Omarov
Mark Omarov

📖
Дмитрий
Дмитрий

💼 📓
Mihir Shah
Mihir Shah

🎨
Gleb
Gleb

📖
Roma Karvacky
Roma Karvacky

💡
Aleksandr Osipov
Aleksandr Osipov

📓
Maxim
Maxim

📓
Anton Kosykh
Anton Kosykh

📓
Vladislav Samatov
Vladislav Samatov

📓
Oleg Kusov
Oleg Kusov

📝 📓
Andrey Savelev
Andrey Savelev

📓
Nickolay Ilchenko
Nickolay Ilchenko

📓 📋
Eugene Ledenev
Eugene Ledenev

🔣
Vladislav Romanov
Vladislav Romanov

🔣
Ainur
Ainur

📖
Elisey Martynov
Elisey Martynov

💡
Olga Pasynok
Olga Pasynok

📋
Max Kokosha
Max Kokosha

💡
Зухриддин Камильжанов
Зухриддин Камильжанов

🌍 📣 📖

This project follows the all-contributors specification. Contributions of any kind welcome!

documentation's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

documentation's Issues

Решить вопрос с лицензией и правообладанием

Да, хочется поддерживать эту методологию и дальше как OpenSource решение

Но поскольку и члены core-team где-то работают, параллельно применяя накопленный опыт и развивая параллельно методологию - нужно решить значимый вопрос по лицензии

Т.е. условно работает человек M из core-team в компании MMM. Само собой, полученный опыт - выливается и в методологию - хоть может и не в рабочее время. Порой, этот M даже применяет методологию в самой компании MMM, обсуждает архитектурные вопросы с командой и т.п. (что возможно тоже пойдет в саму методологию, а не ее "форк" для компании и конкретных проектов)

Спустя какое-то время, если компания MMM очень жадна до прав - то она может потребовать/подать иск, чтобы за ней признали право на владение методологией (в случае же донатов - может быть и что-то еще)

Не хочется повторять историю nginx, поэтому хотелось бы - разрулить этот вопрос как можно раньше

@karina-drummer

  • Вопрос с лицензиями важный. Он даже прямо сейчас имхо должен быть рзарешен.
  • Крч имхо лицензия не позже чем одновременно с MVP должна быть выкачена

README: Slicing / Splitting

Slicing - секция с базовым описанием философии разбивки приложения согласно методологии, возможно с базовым описанием сущностей (чем короче и емче - тем лучше) и вставкой с реальной структурой проекта

Content

На свой вкус, но описал здесь свое мнение

  • Прямая вставка со структурой (см. как здесь)
  • Фрагменты из твоего MVP в сжатом виде (сам же вроде как и хотел)
  • Немного про "слайсинг" проекта

Дополнительно

  • Максимально заинтересовать целевого читателя, чтобы он пошел дальше

    • Он должен понять - что методология решает его проблему
    • Т.е. мы должны нашим ридми - "продать методологию", а потом уже погружаться в детали
  • По возможности - переиспользовать/доработать то что уже есть

  • По возможности и необходимости - референсится на имеющиеся статьи в доке

Материалы для задачи

Как минимум нижеперечисленное, но можешь себя не ограничивать

README: Overview (concepts)

Overview - секция с базовым прогоном по методологии и описанием "а что здесь есть"

Overview/Concepts - подсекция, объясняющая ключевые концепции методологии, о которых точно надо знать "при первом приближении", и которые больше раскроют философию методологии

Content

На свой вкус, но описал здесь свое мнение

Имхо должно быть про Public API, Isolation - и возможно что-то еще

Но не слишком подробно - ибо у нас отдельные статьи есть на это (а некоторые "в планах")

Дополнительно

  • Максимально заинтересовать целевого читателя, чтобы он пошел дальше

    • Он должен понять - что методология решает его проблему
    • Т.е. мы должны нашим ридми - "продать методологию", а потом уже погружаться в детали
  • По возможности - переиспользовать/доработать то что уже есть

  • По возможности и необходимости - референсится на имеющиеся статьи в доке

Материалы для задачи

  • Глянь текущие дискуссии (мб что выцепишь)
  • Глянь папку /concepts/ в нашей текущей доке (многое оттуда пойдет, но можешь и отсеять, оставив "ключевое"
  • Можешь глянуть "Требования к архитектуре" - мб там тоже что-то выцепить можно

Доработать структуру документации

Почистить всю документацию методологии от innerHTML

Пофиксить доку: нужно убрать по-максимуму innerHTML врезки в md-файлах

  • Если будут где-то затыки - можно написать в чат
    Если же и так не разберемся - оставим как "эдж-кейс"

  • При этом игнорируем пока спойлеры (<details>...</details>), т.к. @karina-drummer их и так уберет по своей задаче (#103)

  • Можно воспользоваться плагинами из списка для удобства
    (для линтинга и отображения доки в github превью)
    (там как раз подсвечивается innerHTML)



UPD: Подзадачи

@OlegBrony

Возможно все покрыть в рамках спринта не удастся

Поэтому лучше стараться цельно завершать работу с каждой директорией, а не "точечно" и "по чуть-чуть везде"

Чтобы можно было перераспределить ресурсы на след. неделе

Проработать директории:

  • about

    Без /old/feature-driven

  • concepts
  • intro


Было бы вообще, если бы настроил в CI или eslint линтование markdown, но пофиг - пусть пока будет как будет

image

COMPLETENESS: Доработать статью про shared

В #61 - будет описано базово, но нужно расписать подетальней (пока отдельным доком, там потом решим)

См. #14 #31


Директория shared описывает переиспользуемые и разделяемые сущности

В корне проекта создается директория shared, в ней располагаются самые низкоуровневые сущности: api, ui, lib, config.

Эти сущности не должны ничего знать про бизнес-логику, фактически являясь деталями реализации. Так как они на самом низком уровне, любая сущность уровнем выше, может импортировать из shared. Из чего можно сделать вывод, что весь код shared модулей должен быть максимально протестирован, так как любое изменение публичной части может привести к поломке проекта в разных местах.

Стоит учитывать, что приложение косвенно полагается на внутреннюю реализацию shared модулей, так как расчитывает на конкретное поведение

CONTRIB: Добавить больше информации для контрибьютинга в репозиторий

#81 (comment)

@sergeysova
Думаю, каждая задача должна описывать одну конкретную проблему или предложение.
Сейчас здесь куча всего:

  • критерии приемки pull requests
  • рекомендации по code review
  • именование коммитов
  • отладка решений по итогам дискуссий
  • Предлагаю под каждую такую проблему заводить отдельную задачу.

Добавить доку: "Методология и бизнес-ценности"

См. дискуссии: #27, #43


Скорее всего раздел about, но можно и в рут положить

@sergeysova
Пока мы строим процесс, но смысл ещё и в том, чтобы методология помогла вытащить наружу проблемное определение задач и целей

— Не можешь сформулировать цель которую будет решать новая фича? А может проблема в том, что сама задача не сформулирована?

@sergeysova
Пока мы строим процесс, но смысл ещё и в том, чтобы методология помогла вытащить наружу проблемное определение задач и целей

@sergeysova
Мне хотелось бы добавить это куда-то, но я чёт не представляю в какой раздел это добавить

Упростить и очистить всю документацию от лишней информации

Сократить доку и вынести в src/blog и т.п.

  • убираем спойлеры (по максимуму, где можем),
  • личный опыт и лишние моменты в отдельную директорию (скорее всего src/blogs),
  • убираем чрезмерную вложенность,
  • по-возможности - упрощаем структуру
  • [optional] Если успеешь - "подчистить" от лишних эмоц. оттенков, просторечий доку (как и хотела)

    И в целом по "негативно-цепляющим" формулировкам можешь пройтись если успеешь, но некритично


UPD: Подзадачи

@karina-drummer

Возможно все покрыть в рамках спринта не удастся

Поэтому лучше стараться цельно завершать работу с каждой директорией, а не "точечно" и "по чуть-чуть везде"

Чтобы можно было перераспределить ресурсы на след. неделе

Проработать директории:

  • about

    Без /old/feature-driven

  • concepts
  • intro

Т.е. крайне важно достичь двух целей этой задачей:

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

Пример: /src/blog/readme.md

 ## Абстракции
(инфа из спойлера раз)

(инфа из спойлера два)

...

---

 ## Разбиение приложения

прочая инфа раз

...

image

README: Overview (motivation)

Overview - секция с базовым прогоном по методологии и описанием "а что здесь есть"

Overview/Motivation - подсекция, объясняющая то, почему была создана методология, какие ее цели, какие были проблемы которые методология была призвана решить методология

Content

На свой вкус, но описал здесь свое мнение

Проблемы, причины, цели, "задумка" и т.п.

Дополнительно

  • Максимально заинтересовать целевого читателя, чтобы он пошел дальше

    • Он должен понять - что методология решает его проблему
    • Т.е. мы должны нашим ридми - "продать методологию", а потом уже погружаться в детали
  • По возможности - переиспользовать/доработать то что уже есть

  • По возможности и необходимости - референсится на имеющиеся статьи в доке

Материалы для задачи

Все это - опционально, на твой вкус - но лучше бы ознакомиться и выцепить оттуда что-то (тебе же проще будет)

README: Head-description

UPD: Поменялись ролями - теперь:

  • Сама дока: @martis-git
  • Тотальное ревью: @sergeysova + дежурные ревьюверы
    Чтобы "была вторая точка зрения по этой секции"

Head-description - pre-section перед остальными секциями

Content

На свой вкус, но перечисляю то - что точно должно быть "где-то" в head-description

  • Предупреждение, что работа в процессе и лучше пока не юзать в проде
  • Базовое описание в head-секции
  • (Если успеешь) Визуальная схема по методологии
    • Предлагали торт / ту схему из чатика
    • Лучше статичную (с анимацией и гифками возможны проблемы)

Дополнительно

  • Максимально заинтересовать целевого читателя, чтобы он пошел дальше
    • Он должен понять - что методология решает его проблему
    • Т.е. мы должны нашим ридми (и особенно head-description) - "продать методологию", а потом уже погружаться в детали
  • По возможности - переиспользовать/доработать то что уже есть
  • По возможности и необходимости - референсится на имеющиеся статьи в доке

README: See also

See also - секция с перечислением доп. материала и инфы для читателя "напоследок", на случай:

  • Если он хочет больше изучить по теме (можно на статьи из доки и не только)
  • Если он хочет помочь проекту или узнать больше "Напоследок"-инфы

Content

На свой вкус, но описал здесь свое мнение

  • Из старой feature-driven доки
  • Оставить ссылки только на важные статьи
  • Оставить инфу про контрибьютинг + помощь
  • Возможно, оставить важные комьюнити ссылки (#45 )

Дополнительно

  • Максимально заинтересовать целевого читателя, чтобы он пошел дальше

    • Он должен понять - что методология решает его проблему
    • Т.е. мы должны нашим ридми - "продать методологию", а потом уже погружаться в детали
  • По возможности - переиспользовать/доработать то что уже есть

  • По возможности и необходимости - референсится на имеющиеся статьи в доке


image

MOTIVATION: Написать доку (или группу доков) про "Методологию и Паттерны"

Зачем?


Какие связи, GRASP применение и т.д.

А тут можно вообще MVC притянуть

  • Model - Бизнес-Логика фичи,
  • View - Логика отображения фичи,
  • Controller - Public API фичи + использование и определение на странице
    image

Добавить основные комьюнити ссылки

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

Возможно в РИДМИ, или какую-то доку

  • "feature-sliced architecture" (тг чат по обсуждению методологии)
  • YouTube канал (который либо создать бы, либо переименовать старый
  • Возможно, упоминание основных мейнтейнеров в эту же доку (чтоб можно было в PR упоминать да и в целом знать)
    • Сюда же можно наверн блог @sergeysova в тг (хотя мб уже лишнее будет)

Добавить CONTRIBUTING доку

Чтобы дать понять, что люди могут вкладываться в проект / предлагать свои идеи и замечания

Поправить выборку под дежурных ревьюверов

Найти способ, добавлять динамически "ревьюверов на этой неделе"

Пока приходит только идея создать отдельную тиму "duty-reviewers" и выборку из людей-ревьюверов делать именно из них
Только каждую неделю тиму саму обновлять
Но как будто можно получше как-то...

Добавить доку: "Абстракции и их нейминг" + Про нарезку сущностей

  • Документация по неймингу сущностей
  • Документация по философии нарезки

image


Старое описание

Нужно базово расписать

  • какие абстракции должны быть в методологии
  • нейминг
    См. дискуссии: #31, #20

Оч подробно писать не надо, т.к. для shared (#70) и для feature (#71) будут отдельные доки (потом смержим если надо)


image

Добавить доку: "Public API"

См. дискуссии: #41


Каждая сущность методологии должна иметь Public API

Импортировать содержимое сущности игнорируя Public API запрещено!

  • feature
  • process
  • entity
  • shared/*

Issue создано для отслеживание процесса написания документации

Добавить доку: "Что есть feature"

Нужно добавить доку "Что есть фича" согласно методологии

Базово будет описано по задаче #61 , а здесь же - надо написать чуть подробнее

См. дискуссии: #23


UPD:
image

README: Overview (head)

Overview - секция с базовым прогоном по методологии и описанием "а что здесь есть"

Более подробно чем head-section, но менее чем остальная дока

Все - чтобы "продать" целевому читателю методологию

Content

Идея методологии, базовое описание

Дополнительно

  • Максимально заинтересовать целевого читателя, чтобы он пошел дальше

    • Он должен понять - что методология решает его проблему
    • Т.е. мы должны нашим ридми - "продать методологию", а потом уже погружаться в детали
  • По возможности - переиспользовать/доработать то что уже есть

  • По возможности и необходимости - референсится на имеющиеся статьи в доке

Добавить доку "Догмы и цели методологии"

  • Мы видим нашу цель, как баланс между идеологией и простотой
  • Мы не сможем сделать серебряную пулю, которая подходит всем

Не выйдет

  • Очень просто
  • Очень понятно
  • Для всех

Некоторые концепции невозможно интуитивно понять, пока не столкнешься с проблемами и не проведешь за решением годы.
Пример из математики — теория графов.
Пример из физики — квантовая механика.
Пример из программирования — архитектура приложений.

Возможны

  • Простота
  • Расширяемость

Цели

  • Широкий круг разработчиков
  • Понятность

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


Наша цель это найти способ доступно объяснить причины наших решений и выдать инструментарий (документация, cli, линтеры) разработчикам, чтобы они избегали проблем, с которыми ещё не сталкивались

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

Собрать облако keywords по разработке

Пришла мысль - сформировать облако слов

  • Из недавних сообщений в core-team

    @karina-drummer
    @sovasergey можно ли processes назвать сервисами? 🤔
    Как в systemd, раз уж сравнения с ОС

    @sergeysova
    нет
    я заметил тенденцию, что сервисом называет сущность
    которая может быть прибита к апи
    вот скорее entities можно назвать сервисом
    чем processes

  • А также исходя из бурных дискуссий по неймингу абстракций

Зачем?

  • Напрямую спросить у сообщества разработчиков - какие слова у них в обиходе и с чем ассоциируются (чтобы иметь в виду при решениях по неймингу в методологии)

  • Чтобы более явно видеть наиболее популярные варианты для сопоставлений:

    Например
    • API requests: api, services, requests, queries, ...
    • UI logic: ui, components, ...
    • Business logic: models, store, state, ...
    • Infrastructure common used logic: shared, common, lib, core, general, ...
    • App init logic: app, core, ...
    • (и т.д.)

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.