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.
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).
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
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.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
