Технические сайты

  • 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#, обрабатывает строковые выражения

http://nugetmusthaves.com/

Распространённые инструменты

  • 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: Интеллект-карты