What Sets FIS Apart from FIS+? A Deep Dive into Their Architecture and Features

This article explains the origins of FIS and its extended version FIS+, comparing their compilation systems, directory conventions, plugins, static resource management frameworks, and local debugging capabilities, while clarifying common naming confusions and the rationale behind the two tools.

Baidu Tech Salon
Baidu Tech Salon
Baidu Tech Salon
What Sets FIS Apart from FIS+? A Deep Dive into Their Architecture and Features

Background

FIS (Front‑end Integrated Solution) is a lightweight core build engine that supplies a configurable compilation system and a design pattern for static‑resource management. It deliberately imposes no directory structure and does not implement a concrete static‑resource workflow; developers extend it via configuration files and plugins.

FIS+

FIS+ is a distribution of FIS optimized for a PHP + Smarty3 backend. It adds a ready‑made compilation pipeline, a full directory convention, and an implementation of the static‑resource framework (including quickling, i18n, and the fis-plus command package). The name fis-plus refers both to the distribution and to its command‑line tool.

Directory Conventions

FIS itself places no restrictions on where source files reside.

FIS+ defines a standard layout: JavaScript files under src/js/, CSS under src/css/, and module definitions under src/modules/. The layout also dictates how modules reference each other and how static assets are included in HTML templates.

Plugins

FIS+ ships with several plugins that address PHP/Smarty specific needs: extlang – parses JavaScript wrapped in {script}{/script} tags. require-async – enables asynchronous module loading for the same tag syntax. smarty-xss – automatically escapes output to prevent XSS vulnerabilities.

Static Resource Management Framework

FIS proposes using the generated map.json as the basis for resource handling, but leaves the implementation to extensions. FIS+ realizes this idea by providing:

Automatic generation of a resource map that records the final URLs of compiled assets.

Bundling rules that combine multiple JavaScript or CSS files into optimized packages.

Support for quickling (partial page updates) and internationalisation (i18n) based on the map.

Local Debugging

Both FIS and FIS+ include a lightweight local server that eliminates the need for a full web server during development. FIS+ extends the server with:

Local data simulation – developers can define mock JSON responses for API endpoints.

URL routing – a simple router that rewrites request paths to the appropriate template or static file.

Test framework – a built‑in display‑template runner that renders Smarty templates with simulated data, useful for rapid UI verification.

Extending the Engine

The same pattern can be used to create backend‑specific distributions, e.g., fis-java or fis-python, each providing plugins and configuration suited to the target environment while reusing the FIS kernel.

Analogy

Conceptually, FIS is comparable to a rendering engine such as WebKit, whereas FIS+ is analogous to a browser built on that engine (e.g., Chrome). The relationship can also be described as Android (kernel) versus MIUI (custom distribution).

FIS vs FIS+ diagram
FIS vs FIS+ diagram
Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

PluginsFISFIS+static resource managementFrontend Buildlocal debuggingdirectory conventions
Baidu Tech Salon
Written by

Baidu Tech Salon

Baidu Tech Salon, organized by Baidu's Technology Management Department, is a monthly offline event that shares cutting‑edge tech trends from Baidu and the industry, providing a free platform for mid‑to‑senior engineers to exchange ideas.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.