Coding and testing
Multilingual, multiplatform coding
We understand containers, patterns, modules and components and the languages and tools used to build them. We provide advice on the optimal workflow and tools whether your project is a web application running on a smart phone or multiple C++ running concurrently on a network of servers.
Why Component Engineering?
Why use component frameworks
State of the art reactive user experiences
It is a complete framework facilitating component templating, template and reactive driven forms, service definitions with dependency injection, a well defined module and component framework and first class project scaffolding via its ng commandline utility.
It enables the programmer to extend the HTML specification to define and use webcomponents in any HTML code. HTML can be extended with both structural and attribute directives and filters can be easily defined and assigned to all elements using pipes. Angular is relies heavily on ReactiveX (RXJS) and has deep integration with RXJS observables for simplified event stream handling and a variety of PubSub implementations.
React is a blazingly fast component based render layer for client UI's and uses shadow DOM to achieve its high render speeds. It is a library not a framework and requires agreement of a stack on which to operate. There are a number of established stacks to choose from based around Flux or Redux implementations for state management.
React uses one-way data flow, so only changes to the data result in changes to the UI. By using a Redux library, you change data in a global app store, and the components listen for changes there. The benefits of having all the app state in one place is having one source of truth. Another benefit is it makes it easier to inspect changes in the app and captures the different states of the app. This helps when trying to reproduce errors and enables debug "time travel" to forward and reverse over state changes to see their effect.
Development is on short release cycles with a large number of contributers which can often lead to breakages on larger projects. where development and change management will not be easy to establish as is the case for more complete frameworks such as Angular or Drupal.
Drupal 8 (js)
Drupal has contributed modules that allow Angular, React and Vue applications to be embedded as blocks directly within a Drupal site and accessed through its standard routing mechanisms. These are known as Progressively Decoupled Blocks and enable a gradual integration of Drupal and market leading client front-end frameworks and libraries. Drupal is evolving fast and future versions will most likely provide full integration with the React Component library.
Vue is a lightweight framework alternative to angular. It a very simple templating system that's easy to start using and is designed to enable incremental adoption of a full client stack. It can be compared against Angular both offering a complete full stack solution (React is a front end library and requires additional elements to make a complete stack). However as an alternative to those market leaders it provides a rapid switching period from other frameworks to Vue.js because of the similarity with Angular and React in terms of design and architecture. Vue.js is a preferred choice for proof of concepts, prototypes and minimum viable products of for use with new teams due do its ease of use and simplicity.
- Vue.js can be used for both building single-page applications and more difficult web interfaces of apps. The main thing is that smaller interactive parts can be easily integrated into the existing infrastructure with no negative effect on the entire system.
- Vue.js can help to develop pretty large reusable templates that can be made with no extra time allocated for that according to its simple structure.
- Vue.js is tiny weighing in around 20KB keeping its speed and flexibility that allows reaching much better performance in comparison to other frameworks.
A collection of design frameworks designed for ease of adoption, extendibility and maintainability
Create only the business logic components you need within a clearly defined and field tested framework.
Symfony PHP framework
Due to its reputation, widespread use and high reliability, Syntapse supports Symfony systems and components built upon it: Drupal, Laravel, Silex, and a host of others. Symfony is a complete framework constructed from a set of individual reusable components.
Symfony consists of:
- A toolbox - a set of prefabricated, rapidly integratable software components. This means that you will have to write less code, with less risk of error. This also means greater productivity and the ability to devote more time to doing those things which provide greater added value, such as managing guiding principles, side effects, etc.
- A methodology – an “assembly diagram” for applications. A structured approach may seem constraining at first. But in reality it allows developers to work both efficiently and effectively on the most complex aspects of a task, and the use of Best Practices guarantees the stability, maintainability and upgradeability of the applications you develop.
Drupal 8 is an object oriented content management framework built upon the foundations Symfony php components and provides tight integration throughout its architecture. Previous incarnations of Drupal were easy to modify due to its aspect oriented approach (which remains available to this day) but hard to manage in larger groups. Adoption of Symfony components has made modifiying Drupal a much easier task and the code is of a much higher quality than Drupal 7. This will likely only improve with time. According to Symfony's own website, Drupal uses the following Symfony Components and this list is likely to increase over iterations of Drupal:
Symfony Components used by Drupal 8:
Laravel PHP framework
Laravel is another framework built on Symfony components but lends itself to rapid applications development, simple file and code organisation, ORM, unit testing support and a lot of ready to use functionality. It ships with Artisan a great command line interface for scaffolding and managing projects. It offers first class cacheing and a solid security system. It is simpler to use and quite opinionated on its project structure, but is slower than Symfony on which it is built. Like Symfony it offers a first class unit test system. According to Symfony's own website, Laravel also uses a significant Symfony components (estimated at around 30% of its code base), and masks its complexity through its elegant simple interfaces:
Symfony Components used by Laravel
Silex PHP Microframework
Silex is a PHP microframework built upon Symfony and Pimple (dependency injection) and inspired by Sinatra (Ruby) framework. A microframework provides the guts for building simple single-file apps. Silex aims to be: concise (it exposes an intuitive and concise API), extensible (it has an extension system based around the Pimple micro service-container that makes it even easier to tie in third party libraries) and testable (it uses Symfony's HttpKernel, which abstracts request and response and simplifies app testing).
According to Symfony's own website, Silex uses a significant number of Symfony components and like Laravel masks its complexity and flexibitly through a simple interface to enable rapid prototype and simple single page application development.
Symfony components used by Silex:
Software Programming and Development
Syntapse has been producing code for over two decades, with experience in multiple languages heavily influenced by modern practices such as RAD, agile, iterative and peer programming. We can advise (or complete) coding tasks of any size from bug fixing and delivery of bespoke components to management and coordination of agile teams and project schedules. By observing modern practices and conventions we can ensure that your software assets will remain maintainable and accessible in the future.
Data and file persistence
Transpilers and Linters
IDE remote debugging
Code quality, coverage and statistics
Explore how Syntapse can assist your business and software development. Contact us for further assistance or general enquiries.
We can offer a range of services from half day consultancy, assessment reports, and troubleshooting to long term greenfield project involvement
As your technology partners we are happy to hear from schools and local authorities, communities and charities, engineers and scientists, startups and institutions