General Items
Agile software development
Agile software development is a conceptual framework for software engineering that promotes development iterations throughout the life-cycle of the project. Learn more »
Build Grid
Build Grid TeamCity is built around the concept of a build grid — a central server is managing a potentially large grid of processes called build agents, which usually run on separate computer boxes. Each build agent has its own setup and the central server distributes tasks to the build agents based on compatibility criteria match between the agent and the task to run. Learn more »
Code Analysis
Code Analysis Taking a look at the software development process we have to realize that we spent more time in reading software as in developing software. Bugfixing and refactoring is taking it's time. So what could we do analyse code or to make it much more easier? Learn more »
Continuous Integration
Continuous Integration (CI) is a practice in software development describing the process of regular, comprehensive and automatic building and testing of applications. CI is often used in agile projects, but not limited to them. Learn more »
JetBrains dotTrace
JetBrains dotTrace is the complete profiling solution for .NET. Learn more »
Domain Specific Languages
Domain Specific Languages As Martin Fowler states in his article — "The basic idea of a domain specific language (DSL) is a computer language that's targeted to a particular kind of problem, rather than a general purpose language that's aimed at any kind of software problem." Learn more »
Extreme Programming
Extreme Programming is one implementation of the agile philosophy. It consists of values, practices and gives a template for the steps of software development. Learn more »
IntelliJ IDEA
IntelliJ IDEA is the most intelligent Java IDE, focusing on developer productivity and teamwork. Despite being called the best Java IDE in the industry IDEA also supports the widest range of other modern programming languages and technologies. Learn more »
Intentional Programming
Intentional Programming. Sometimes as a programmer we can get ahead of ourselves. We reference class we haven't yet imported or even created, assign values to variables we haven't yet defined, make calls to methods we haven't written, and so forth. Technically these could be considered mistakes, but they are mistakes made with the best of intentions. Learn more »
Language Oriented Programming
(LOP) is a style of computer programming, via metaprogramming in which, rather than solving problems in general-purpose programming languages, the programmer creates one or more domain-specific programming languages for the problem first, and solves the problem in those languages. Learn more »
Polyglot Programming
Polyglot Programming Different programming languages bring different strengths. Polyglot programming allows developers to combine multiple languages on a single project. They can, for example, use Java to build the system core, scripting in Groovy to define a DSL around the core, HTML with JavaScript to build web UI and let say Ruby to implement other external services. Learn more »
Pre-tested Commit
Pre-tested Commit With TeamCity's Pre-tested Commit feature (available in IntelliJ IDEA, Eclipse, and Microsoft Visual Studio), the developer's changes to be committed to the Version Control System (VCS) are first tested on the server bypassing the VCS. Learn more »
Refactoring
Refactoring. According to Martin Fowler, "Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior." Since its first introduction, this technique has been widely adopted. Learn more »
ReSharper
ReSharper: The most intelligent add-in to Visual Studio, ever! With its unrivalled code analysis, superior unit testing solution, and much, much more — ReSharper is sure to greatly increase the productivity of any .NET developer. Learn more »
Right-to-Left Development
Right-to-Left Development A main step in developing a logic model is to decide which approach to use. The different development stages (e.g., planning, implementation, or maintenance) should lead to one of two approaches to creating the model: right-to-left or left-to-right. Learn more »
TeamCity
TeamCity is a distributed build management and Continuous Integration system that allows your team to run and monitor your software building process while improving team communication, productivity and the integration of changes. With TeamCity: Learn more »
Test-Driven Development
Test-Driven Development (TDD) is a software development technique consisting of short iterations where new test cases covering the desired improvement or new functionality are written first, then the production code necessary to pass the tests is implemented, and finally the software is refactored to accommodate changes. The availability of tests before actual development ensures rapid feedback after any change. Practitioners emphasize that test-driven development is a method of designing software, not merely a method of testing. Learn more »
Unit Testing
Unit Testing: In computer programming, unit testing is a procedure used to validate that individual units of source code are working properly. A unit is the smallest testable part of an application. In procedural programming a unit may be an individual program, function, procedure, etc., while in object-oriented programming, the smallest unit is a method, which may belong to a base/super class, abstract class or derived/child class. Learn more »
