Технические сайты
- Hacker News: Отличный сайт-агрегатор ссылок по программированию
- reddit по программированию: То же, что и выше
- MSDN: Официальный технический центр Microsoft, в основном документация
- InfoQ: Корпоративные приложения, фокус на области разработки ПО
- OSChina: Сообщество технологий с открытым исходным кодом, очень хорошо проявляет себя в этой сфере
- cnblogs, 51cto, csdn: Распространённые технические сообщества, каждое со своей специализацией
- StackOverflow: Сайт вопросов и ответов по IT
- GitHub: Крупнейшая в мире платформа управления исходным кодом, на ней размещено множество известных проектов с открытым исходным кодом, таких как ядро Linux,
- OpenStack и другие бесплатные электронные книги по IT:http://it-ebooks.info/
- DevStore: магазин сервисов для разработчиков
Хорошие книги
- Peopleware
- Мифический человеко-месяц
- Совершенный код 2
- Искусство программирования
- Самосовершенствование программистов
- Программист-прагматик
- Практика высокопроизводительных программистов (Стать выдающимся программистом на самом деле почти не связано с написанием кода)
- Компьютерные системы: взгляд программиста
- Размышления о программном обеспечении
- Введение в алгоритмы (MIT Press)
- Дискретная математика и её приложения
- Паттерны проектирования
- Красота программирования
- Хакеры и художники
- Жемчужины программирования
- C++ Prime
- Эффективный C++
- TCP/IP. Иллюстрированное руководство
- Искусство программирования для Unix
- «Введение в психоанализ» Фрейда
- Как привести дела в порядок: искусство продуктивности без стресса
Инструменты платформы (все прелести открытого исходного кода)
- Redmine/Trac: платформы управления проектами
- Jenkins/Jira (не с открытым исходным кодом): системы непрерывной интеграции (Apache Continuum, это CI-система под Apache, ещё не было времени её изучить)
- Sonar: платформа управления качеством кода
- Git, SVN: системы контроля версий исходного кода
- GitLib/Gitorious: создайте собственный сервер GitHub
- gitbook:https://www.gitbook.io/Отлично подходит для написания книг, конечно, также очень хорошо подходит для написания документов
- Travis-ci: незаменим для непрерывной интеграции проектов с открытым исходным кодом, в сочетании с GitHub,https://travis-ci.org/
- Инструменты тестирования с открытым исходным кодом, сообщества (Selenium, OpenQA.org)
- Puppet: движок автоматизированного управления, который можно применять к платформам Linux, Unix и Windows. Так называемая система управления конфигурацией предназначена для управления такими ресурсами, как файлы, пользователи, процессы и программные пакеты, на машинах. Управляете ли вы 1 машиной или десятками тысяч машин, Puppet легко с этим справится.
- Nagios: мониторинг состояния системы и оповещение, также есть Icinga (полностью совместима со всеми плагинами Nagios, принципами работы, конфигурационными файлами и методами, почти в точности такими же. Простая настройка, мощные возможности)
- Ganglia: распределённая система мониторинга
- fleet: распределённая система инициализации
Связанное с краулерами (забавные инструменты)
- Phantomjs
- berserkJS (улучшенная версия на основе PhantomJS)
- SlimerJS
- CasperJS
- selenium
Инструменты тестирования производительности/стресс-тестирования веб-серверов/балансировщики нагрузки
- http_load: Программа очень маленькая, после распаковки — менее 100K
- webbench: Это инструмент стресс-тестирования веб-сайтов под Linux, может имитировать до 30,000 одновременных подключений для проверки пропускной способности веб-сайта
- ab: ab — мощный инструмент тестирования, поставляемый с Apache
- Siege: Открытый инструмент стресс-тестирования, который может выполнять многопользовательский одновременный доступ к веб-сайту в соответствии с конфигурацией, записывать время отклика всех процессов запросов для каждого пользователя и повторять при определённом числе одновременных доступов.
- squid (фронтенд-кэш), nginx (нагрузка), nodejs (да, он тоже может, можно написать немного кода, чтобы реализовать высокопроизводительный балансировщик нагрузки): распространённые балансировщики нагрузки
- Piwik: Открытая система статистики посещаемости веб-сайтов
- ClickHeat: открытая тепловая карта кликов по сайту
- HAProxy: высокопроизводительный балансировщик нагрузки TCP/HTTP
- ElasticSearch: поисковый движок на основе Lucene
- Page Speed SDK и YSLOW
- HAR Viewer: инструмент анализа HAR
- Protractor: инструмент автоматизированного тестирования E2E (end-to-end)
Связанное с веб-фронтендом
- GRUNT: js-исполнитель задач
- Sea.js: модуляризация JS
- Knockout.js: разработка фронтенда с MVVM, технология привязки
- Angular.js: используйте супердинамичные HTML & JS для разработки веб-приложений!
- Highcharts.js, Flot: популярные плагины веб-графиков
- Raw: очень хороший продвинутый инструмент визуализации данных
- Rickshaw: библиотека графиков временных рядов, может использоваться для построения графиков в реальном времени
- JavaScript InfoVis Toolkit: ещё один плагин для веб-визуализации данных
- Pdf.js, отображать PDF в HTML
- ACE, CodeMirror: редакторы HTML-кода (ACE действительно отличный)
- NProcess: великолепный индикатор прогресса загрузки
- impress.js: позволяет создавать ослепительные эффекты презентации контента (среди похожих — reveal)
- Three.js: библиотека 3D для Web
- Hightopo: основанная на HTML5 библиотека пользовательского интерфейса для 2D- и 3D-визуализации
- jQuery.dataTables.js: очень гибкий плагин таблиц
- Raphaël: JS-библиотека для рисования на canvas, позже выяснилось, что графика Baidu Index была нарисована с её помощью
- director.js: JS-модуль маршрутизации, маршрутизация фронтенда, маршрутизация бэкенда Node.js и т. д., подходит для создания одностраничных приложений
- pace.js: индикатор прогресса загрузки страницы
- Bower: менеджер веб-пакетов
- jsnice: Интересный инструмент декомпиляции JS, который угадывает имена переменных после сжатияhttp://www.jsnice.org/
- D3.js: это библиотека визуализации данных на JavaScript (среди похожих — P5.js)
- Zepto.js: штука для мобильных, заменяющая jQuery; конечно, можно также использовать jQuery Mobile.
UI-фреймворки: Foundation, Bootstrap, Pure, EasyUI, Polymer
Несколько сайтов, которые обязательно должны посетить front-end UI-дизайнеры: Dribbble, awwwards, unmatchedstyle, UIMaker
Mozilla Developer Center:https://developer.mozilla.org/en-US/
Ресурсы иконок: IcoMoon (мой любимый), Themify Icons, FreePik, Glyphiconsart
- Dialog: Очень красивое диалоговое окно
- AdminLTE: проект с открытым исходным кодом на GitHub, фреймворк для страниц административной панели на основе Bootstrap 3
- Respond.js: Позволяет IE6-8, которые не понимают любви, поддерживать адаптивный дизайн
- require.js: библиотека загрузки JS-модулей
- select2: библиотека замены выпадающего списка с более широкими возможностями, чем chosen
- AngularUI: библиотека пользовательского интерфейса, интегрированная с Angular.js
- normalize.css: библиотека, использующая современные стандарты для единообразного отображения HTML в различных браузерах
- CreateJS: игровой движок HTML5. Less, Compass: упрощают разработку CSS
- emojify.js: используется для автоматического распознавания текста Emoji на веб-страницах и отображения его в виде изображений
- Simditor: хороший HTML-редактор с открытым исходным кодом, простой и эффективный
- Sencha: фреймворк для мобильной разработки на основе HTML5
- SuperScrollorama+TweenMax+skrollr: создание потрясающих анимаций параллакс-скроллинга на веб-страницах
- jquery-smooth-scroll: то же, что и выше, плагин плавной прокрутки
- Animate.css: CSS-библиотека, реализующая различные анимационные эффекты
- Emmet: необходим фронтенд-разработчикам, предшественник ZenCode
- MagicDraw: инструмент для создания UML-диаграмм
Обработка больших данных/анализ данных/распределённые инструменты
Hadoop: распределённая файловая система. В сочетании со своей моделью программирования MapReduce её можно использовать для пакетной обработки огромных объёмов данных (не говоря уже о Hive, Pig, HBase и т. д.). Стоит упомянуть дистрибутив Hadoop CDH5 от Cloudera, который основан на YARN MRv2 и интегрирует Spark, что позволяет напрямую использовать его в производственных средах. Он очень полезен для предприятий, позволяя быстро создавать хранилища данных.
Ceph: распределённая файловая система для Linux (особенность: отсутствие центрального узла)
Storm: обработка потоковых данных в реальном времени. Можете ознакомиться с введением от IBM. (Есть также S4 от Yahoo, который тоже занимается обработкой потоковых данных.)
Spark: крупномасштабная потоковая обработка данных (может обрабатывать три распространённых сценария обработки данных на предприятиях: сложная пакетная обработка данных; интерактивные запросы на основе исторических данных; потоковая обработка данных на основе потоков данных в реальном времени). На CSDN есть хорошая статья, знакомящая с ним.
Spark Streaming: фреймворк вычислений в реальном времени на основе Spark
Tachyon: распределённая файловая система в оперативной памяти
Mesos: менеджер кластеров для вычислительных фреймворков, обеспечивающий эффективную изоляцию ресурсов и их совместное использование между распределёнными приложениями или фреймворками. Impala: открытый аналитический движок для больших данных нового поколения, который предоставляет семантику SQL и работает быстрее Hive.
SNAPPY: быстрая система сжатия данных, подходящая для использования в экосистеме Hadoop
Kafka: распределённая система очередей сообщений с высокой пропускной способностью
ActiveMQ: разработанная Apache — самая популярная и мощная открытая шина сообщений
MQTT: Message Queuing Telemetry Transport — протокол обмена мгновенными сообщениями, разработанный IBM, который может стать важным компонентом Интернета вещей
RabbitMQ: Я помню, OpenStack использует это, верно?
ZeroMQ: Утверждается, что он упрощает распределённые вычисления; это распределённая очередь сообщений. Можно ознакомиться со статьёй Юньфэна, в которой он её представляет. Системы сбора логов с открытым исходным кодом: scribe, chukwa, kafka, flume. Вот статья со сравнением.
Zookeeper: Надёжный проект с открытым исходным кодом для распределённой координации
Databus: система захвата данных в реальном времени с низкой задержкой от LinkedIn
Сбор данных из источников: Flume, Google Refine, Needlebase, ScraperWiki, BloomReach
Технологии сериализации: JSON, BSON, Thrift, Avro, Google Protocol Buffers
NoSql:Apache Hadoop、Apache Casandra、MongoDB、Apache CouchDB、Redis、BigTable、HBase、Hypertable、Voldemort、Neo4j
Связанное с MapReduce: Hive, Pig, Cascading, Cascalog, mrjob, Caffeine, S4, MapR, Acunu, Flume, Kafka, Azkaban, Oozie, Greenplum
Обработка данных: R, Yahoo! Pipes, Mechanical Turk, Solr/Lucene, ElasticSearch, Datameer, Bigsheets, Tinkerpop. NLP (обработка естественного языка): Natural Language Toolkit, Apache OpenNLP, Boilerpipe, OpenCalais
Машинное обучение: WEKA, Mahout, scikits.learn, SkyTree
Технологии визуализации: GraphViz, Processing, Protovis, Google Fusion Tables, Tableau, Highcharts, ECharts (у Baidu он довольно хорош), Raphaël.js
- Kettle: ETL-инструмент с открытым исходным кодом
- Pentaho: BI-система с открытым исходным кодом, где в основе — рабочие процессы
- Mondrian: ROLAP-сервер с открытым исходным кодом
- Oozie: открытый движок планирования рабочих процессов для Hadoop
Инструменты анализа и визуализации данных с открытым исходным кодом: Weka, Orange, KNIME
Cobar: распределённое промежуточное ПО MySQL от Alibaba
C & C++
Thrift: используется для разработки масштабируемых и кросс-языковых сервисов. (К ним относятся Avro, Google Protocol Buffers.)
libevent: событийно-ориентированная сетевая библиотека, поддерживает Windows, Linux, BSD и другие платформы. Внутри использует системные вызовы, такие как select, epoll и kqueue, для управления механизмом событий. (Кстати, есть также libev.)
Boost: достаточно сказать — почти стандартная библиотека C++
Ptmalloc\Valgrind\Purify
Архитектура NetworkServer: acceptor -> dispatcher -> worker (кстати, это не инструмент)
breakpad: модуль создания и анализа аварийных дампов, используется во многих отчётах о падениях
Связанное с UI: не говоря уже о MFC, BCG и Qt. Более продвинутые включают технологии HTML и DirectUI: libcef (основан на ядре Chrome; мысль об использовании HTML5 для разработки страниц немного воодушевляет), HtmlLayout, Duilib, Bolt. Для не-C++ есть также node-webkit, который довольно хорош, объединяет ядра Node.js и WebKit.
Связанное с разработкой игр
MINA: используйте Java для разработки серверов мобильных и веб-игр. (Кстати, есть также Netty, который тоже мощный. Оба основаны на NIO.)
HP-Socket: я видел несколько серверов веб-игр, построенных на этом
Технологический блог Yunfeng:http://blog.codingnow.com/
OGRE: известный движок рендеринга 3D-графики
OpenVDB: открытая библиотека эффектов на C++ от DreamWorks
cocos2d: кроссплатформенный 2D-игровой движок
unity3d: кроссплатформенный 3D-игровой движок, очень популярный
Node.js: многие также используют его для разработки мобильных игр и серверов. (Pomelo от NetEase — один из таких примеров.)
Агрегация логов, распределённый сбор логов
Scribe: Facebook (nodejs + scribe + inotify для синхронизации логов)
logstash: мощная система сбора логов; вы можете построить мощную платформу анализа логов на основе logstash + kibana + elasticsearch + redis
log.io: система сбора логов в реальном времени, разработанная с использованием Node.js
RTP, транспортный протокол реального времени и аудио/видео
RTP, RTCP, RTSP -> librtp, JRTPLIB (в соответствии со стандартом RFC1889)
Кольцевой буфер, используется для передачи данных в реальном времени
SDL,ffmpeg,live555,Speex
Red5: сервер потокового Flash-медиа с открытым исходным кодом, разработанный на Java. Он поддерживает: преобразование аудио (MP3) и видео (FLV) в потоки воспроизведения; запись клиентских потоков воспроизведения (только FLV); общие объекты; публикацию живых потоков; удалённые вызовы.
Python
Eric, Eclipse+pydev, довольно хорошая среда разработки Python
PyWin: пакет для программирования Win32 API
numpy: пакет для научных вычислений, в основном используется для крупномасштабных матричных вычислений и т. д. Кроме того, есть SciPy и Matplotlib.
Связанное с GUI: PyQt, PyQwt
supervisor: инструмент мониторинга процессов
Связанное с Java
Популярные IDE: IntelliJ IDEA, Eclipse, NetBeans
Связанное с веб-разработкой: Tomcat, Resin, Jetty, WebLogic и т. д. Распространённые компоненты: Struts, Spring
Hibernate. Netty: асинхронный событийно-управляемый фреймворк для программирования сетевых приложений, хорошо подходит для сетевого программирования с высокой конкурентностью (NIO-фреймворк)
MINA: позволяет легко разрабатывать высокопроизводительные и высоконадёжные сетевые приложения (также NIO-фреймворк). На нём разработано множество серверов мобильных игр.
jOOQ: Java ORM-фреймворк. Activiti: движок рабочих процессов. Похожие: jBPM, Snaker.
Perfuse: пакет пользовательского интерфейса, используемый для отображения структурированных и неструктурированных данных в интерактивных визуальных графах
Gephi: программное обеспечение для анализа сложных сетей, в основном используемое для интерактивной визуализации и исследования различных сетей и сложных систем, динамических и иерархических графов в качестве инструмента с открытым исходным кодом
Nutch: известный проект краулера; Hadoop был разработан на основе этого проекта
web-harvest: инструмент извлечения веб-данных
Инструменты POM: Maven + Artifactory. Netflix
Curator: клиентская библиотека Zookeeper с открытым исходным кодом от Netflix, используемая для упрощения программирования клиента Zookeeper
Akka: фреймворк для параллельной обработки на основе модели акторов
EclEmma: инструмент тестирования покрытия
Связанное с .NET
Xilium.CefGlue: обёртка .NET на основе фреймворка CEF для разработки браузеров на базе Chrome на .NET
CefSharp: Как и выше, есть обёртка WebKit, упрощающая взаимодействие C# и JS.
netz: бесплатный инструмент для сжатия исполняемых файлов .NET
SmartAssembly: невероятный инструмент оптимизации и обфускации .NET-кода
NETDeob0: инструмент деобфускации .NET, поистине «дьявол высотой в фут, а Дао — в десять футов» (на GitHub также есть de4dot, оба с открытым исходным кодом)
ILMerge: упаковывает все используемые DLL и exe-файлы в один exe-файл
ILSpy: инструмент декомпиляции .NET с открытым исходным кодом
Javascript.NET: очень хороший движок исполнения JS, обёртка над V8
NPOI: операции с Excel
DotRAS: модуль службы удаленного доступа
WinHtmlEditor: HTML-редактор для WinForms
SmartThreadPool: пул потоков с расширенными возможностями, реализованный на C#
Snoop: утилита-шпион WPF
Autofac: легковесный IoC-фреймворк
HtmlAgilityPack: мощный инструмент для парсинга HTML
Quartz.NET: планирование заданий
HttpLib: @CodePlex, упрощает HTTP-запросы
SuperSocket: упрощает операции с сокетами. На его основе также существует SuperWebSocket, который можно использовать для разработки автономных WebSocket-серверов.
DocX: работа с файлами Word без установки Office
Dapper: легковесный ORM с хорошей производительностью
HubbleDotNet: система полнотекстового поиска, которая может подключаться к базам данных
fastJSON: @CodeProject, высокопроизводительный класс сериализации JSON
ZXing.NET: @CodePlex, QR-коды, штрихкоды и связанное
Nancy: Легковесный HTTP-сервер. Позволяет отказаться от IIS для небольших веб-приложений (Nancy.Viewengines.Razor добавляет движок Razor).
AntiXSS: библиотека защиты от XSS от Microsoft, Microsoft Web Protection
LibraryJint: интерпретатор JavaScript
CS-Script: выполнение файлов с кодом C# как скриптов
Jexus: высокопроизводительный, простой в использовании, бесплатный сервер ASP.NET для Linux
Clay: делает dynamic ещё более гибким, позволяя писать на C# как на JavaScript
DynamicJSON: получение данных JSON без определения моделей данных
Antlr: генератор парсеров с открытым исходным кодом (не совсем специфичен для C#, доступен и для других языков)
SharpPcap: оболочка C# для WinPcap, мощная библиотека анализа сетевых пакетов (включает PacketNotNet для анализа протоколов пакетов)
Roslyn: компилятор C# и VB
ImageResizer: Свободное управление размером изображения на стороне сервера. Поистине магический инструмент. Удобно для CMS загружать небольшие изображения на мобильных устройствах и большие — на ПК.
Связанные с UI: DevExpress, Fluent (стиль Office 07), mui (Modern UI for WPF)
NetSparkle: Компонент автоматического обновления приложения
ConfuserEx: Открытый инструмент обфускации .NET
ServiceStack: Открытый высокопроизводительный фреймворк веб-сервисов, может использоваться для создания высокопроизводительных REST-сервисов. Expression
Evaluator: Eval для C#, обрабатывает строковые выражения
Распространённые инструменты
- Fiddler: Очень полезный инструмент отладки веб-фронтенда, конечно, для нижележащего протокола HTTP. Обычно встроенных инструментов отладки в браузерах вроде Chrome достаточно, но в особых случаях всё равно нужно использовать его.
- Wireshark: Известный инструмент анализа сетевых пакетов
- PowerCmd: Мощная замена Windows Cmd
- RegexBuddy: Мощный инструмент тестирования регулярных выражений
- Soure Insight: Магический инструмент для чтения исходного кода
- SublimeText: любимый редактор программистов
- Database.NET: универсальный клиент реляционных баз данных на базе .NET 4.0. Довольно удобен для простых задач.
- Navicat Premium: поддерживает MySql, PostgreSQL, Oracle, Sqlite и SQL Server. Он не так универсален, как Database.NET, но обладает гораздо лучшей производительностью. Также имеет встроенную функцию резервного копирования по расписанию для баз данных.
- Synergy: одна клавиатура и мышь для управления несколькими компьютерами в локальной сети
- DameWare: набор инструментов для удалённой помощи (в основном использую его на работе для управления большим экраном)
- Radmin: инструмент удалённого управления. Я пользовался им некоторое время.
- DameWare, который также требует взлома и плохо поддерживает Win7; вместо него я нашёл этот, и он работает хорошо.
- Listary: «супермагический инструмент», который может значительно повысить скорость и эффективность просмотра и поиска файлов в Windows.
- Clover: добавляет вкладки в Проводник Windows
- WinLaunch: инструмент запуска, имитирующий Mac OS
- Fritzing: рисование принципиальных схем
- LICEcap: создание GIF-уроков, git,
- svn: Система контроля версий. Enigma Virtual Box (упаковывает exe, dll и т. д. в одну исполняемую программу).
- Open DBDiff (для SqlServer) синхронизация баз данных
- SymmetricDS: Синхронизация баз данных
- BIEE, Infomatica, SPSS, weka, язык R: Анализ данных
- CodeSmith, LightSwitch: Генерация кода
- Pandoc: Инструмент преобразования Markdown для публикации книг. Раньше я возился с Docbook, но сейчас Markdown более популярен.
- Window Magnet [Mac]: Улучшает управление окнами в Mac, с возможностью, как в Win7, перетаскивать окна к краям экрана для автоматического изменения размера.
- log explorer: Просмотр журналов SqlServer. Зависимость
- walker: Запрос зависимостей DLL приложений Windows
- Shairport4w: Передача аудио с iPhone, iPad, iPod на ПК по протоколу AirPlay
- ngrok: Инструмент проникновения в интрасеть. Axure: Инструмент быстрого прототипирования. Есть также онлайн-инструмент для рисования, созданный отечественной стартап-командой, который работает очень хорошо.http://www.processon.com
- tinyproxy: (Linux) Небольшой прокси-сервер, поддерживающий протоколы HTTP и HTTPS. EaseUS Partition
- Master: суперпростой инструмент для изменения размеров разделов, и он довольно быстрый. Если на вашем диске C заканчивается место, используйте его, чтобы отрезать немного места у диска D — не нужно переустанавливать систему.
- CheatEngine: незаменимый инструмент для изменения значений памяти во время игры (помню, я использовал его, когда играл в Xuan-Yuan Sword 6, это было очень удобно).
- ApkIDE: чудо-инструмент для декомпиляции Android. Инструменты обхода (Free Gate, Tianxing Browser)
Инструменты дизайна: Sketch, OmniGraffle
MindManger: Интеллект-карты