精华内容
下载资源
问答
  • Novel design of tri-band bandpass filter based on fractal-shaped geometry of a complementary single split ring resonator
  • <p>Fractal is also used by US Web Design Standards - https://github.com/uswds/uswds#fractal</p> </li></ul> <p>Hi there! Thanks for providing such an awesome tool. Our agency (U.S. Federal Election ...
  • Moving Fractal forwards

    2020-11-29 20:10:58
    <div><p>Over the last year and a half Fractal has evolved from an internal prototype at <a href="http://clearleft">Clearleft</a> into an open source project that we (and now many others) are using to ...
  • Support Fractal Installs

    2020-12-09 12:09:17
    It is a design decision based on current structure to support a fractal design pattern to the system. This means university A has the same base as B as C and that all can (currently) have the elmsln-...
  • chore: introduce Fractal

    2021-01-09 22:26:02
    <ol><li>Harvests component metadata using <a href="https://fractal.build/">Fractal</a> tool. Fractal has more features than just harvesting metadata, that would let us create the entire development ...
  • <div><h3><a href="https://federalist.fr.cloud.gov/preview/18f/web-design-standards-docs/update-fractal/whats-new/updates/">:eyes: Preview on Federalist</a></h3> <p>This is the update for #246. I ...
  • Fractal is a modular, extensible and programming language agnostic component model that can be used to design, implement, deploy and reconfigure systems and applications,

    Fractal is a modular, extensible and programming language agnostic component model that can be used to design, implement, deploy and reconfigure systems and applications, from operating systems to middleware platforms and to graphical user interfaces. The goal of Fractal is to reduce the development, deployment and maintenance costs of software systems in general, and of ObjectWeb projects in particular.

    The Fractal component model has the following important features:

    • recursivity : components can be nested in composite components (hence the "Fractal" name).
    • reflectivity : components have full introspection and intercession capabilities.
    • component sharing : a given component instance can be included (or shared) by more than one component. This is useful to model shared resources such as memory manager or device drivers for instance.
    • binding components : a single abstraction for components connections that is called bindings . Bindings can embed any communication semantics from synchronous method calls to remote procedure calls
    • execution model independance : no execution model is imposed. In that, components can be run within other execution models than the classical thread-based model such as event-based models and so on.
    • open : extra-functional services associated to a component can be customized through the notion of a control membrane.
    Fractal is a general-purpose software composition framework that supports component-based programming, including both:
    • components (type) definition and configuration (instantiation);
    • runtime management including dynamic reconfiguration.

    The Fractal specification is the foundation of Fractal. It defines the component model and the Application Programming Interface (API), i.e. the Fractal programming model. The Fractal component model provides a homogeneous vision of software systems structure with a few but well defined concepts and exhibits distinguishing features such as recursion with sharing and reflection. These features allow:
    • A uniform management of both so-called business and technical components;
    • A uniform management of resources (data, caches, pools, protocols, connections…), activities (threads, transactions, processes…) and domains (security, persistence…);
    • And finally a possible component-based approach throughout the software lifecycle: development, deployment, and production (runtime management).

    The Fractal Model
    The Fractal Component Model can be seen as a recursive and reflexive extension of an ODP-like
    object model:
    • Components can only interact with their environment through operations at identified access points called interfaces which can be of two main sorts: server (provided) and client (required). Some bindings must be established between components (more precisely between their interfaces) so that they can interact. Bindings are communication paths than can be local, distributed, secured… Component interfaces are kept separate from implementations, and bindings are exteriorized from components so as to support flexibility.
    The model is fully recursive. A component is composed out of two parts: a controller and content. The content of a component is composed of (a finite number of) other components, which are under the control of (the controller of) the enclosing component. The model allows components to appear at an arbitrary level. The recursion ends up with components with an empty content that directly encapsulate objects. Recursion is crucial with respect to the scalability of component-based systems.
    • The model allows for component sharing. Different components may have overlapping content: hence a component may be shared by several distinct enclosing components. The exact semantics of the resulting configuration is determined by an encompassing component that encloses all the relevant components in the configuration.
    The model is fully reflexive. It allows a programmatic manipulation of software architectures. Fractal components are runtime entities (they are manifest during system execution) that exhibit introspection and
    intercession capabilities: they provide (meta)information and constructs which allow applications to dynamically access and manipulate their structure – expressed in terms of containment and binding relationships – and behaviour.

    Framework Implementations
    Fractal is not a product. It should be understood as an architectural abstract framework used as a
    basis for a family of concrete frameworks. A concrete Fractal framework is made of the Fractal
    interface as defined by the Fractal Specification, together with a Fractal implementation. Distinct
    framework providers may provide concurrent implementations. Fractal comes with a Reference
    Implementation in Java (named Julia) that can be used to check the compliance of alternative Fractal
    Implementations or Fractal Systems (i.e. built upon Fractal).

    Framework Extensions
    Various kinds of framework extensions may eventually be incorporated in Fractal:
    Configuration extensions based on languages and tools such as graphical point-and-click
    component configuration and deployment tools, Architecture Description Languages (ADL),
    persistent component repositories…
    Composition extensions such as behavioural composition, contractual composition. Recall
    that the basic composition mechanism based on containment relationships and bindings as
    defined by the Fractal Component Model is referred to as structural composition.
    Management extensions such as models, languages and associated administration tools
    for supervision, diagnosis…

    Framework Specialisations
    Various personalities may be eventually defined and incorporated in Fractal such as JMX, EJB, CCM or Web Services. As in Jonathan, a personality is a set of normalised Application Programming Interfaces (API).
    展开全文
  • <div><p>This PR is being developed in parallel with https://github.com/18F/web-design-standards/pull/2050.</p> <p>This helps us with ...<pre><code>jinja {% fractal_component accordion--default %} ...
  • A fractal antenna section, which introduces a new class of antennas that has received a lot of interest and attention after the second edition was published New end-of-chapter tables that provide a ...
  • 分形天线设计

    2014-05-14 22:18:30
    A systematic study of fractal antennas is undertaken with the aim of gaining an insight into their design procedures. The Koch curve, Sierpinski gasket, and Sierpinski carpet antennas of the dipole ...
  • plannar inverted F antenna

    2013-08-22 20:47:23
    F-PIFA) based on the self affinity design is presented in this paper. The procedure for designing a Fractal Planar Inverted F Antenna is explained and the 2nd iteration of Sierpinski Carpet is chosen ...
  • </li><li><a href="https://fractal.build/guide/components/configuration#name"><code>name</code></a></li><li><a href="https://fractal.build/guide/components/configuration#label"><code>label</code></a>...
  • 编程语言之争自古以来就从未停歇,对于有着“世界上最好的编程语言”之称的 PHP,表面看似赞扬,实则为讽刺。...你还记得几年前流行的那篇名为“全面解析PHP的糟糕设计(PHP: a fractal of bad design)”(https:/...

    编程语言之争自古以来就从未停歇,对于有着“世界上最好的编程语言”之称的 PHP,表面看似赞扬,实则为讽刺。PHP 确实简单易上手,但是其函数命名不规范、核心异步网络不支持、后期维护困难等缺点,让不少开发者避之不及。不过,PHP 经过了这么多年的发展,还是槽点满满吗?

    你还记得几年前流行的那篇名为“全面解析PHP的糟糕设计(PHP: a fractal of bad design)”(https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/)博客文章吗?当我第一次读它的时候,我在一个不入流的公司工作,那里有很多老旧的PHP项目。这篇文章让我思考我是否应该放弃编程,去做一些完全不同的事情。

    幸运的是,我很快地就换了份工作。更重要的是,自5.*版本后,PHP有了长足的发展。今天,我想向那些不再使用PHP编程,或者仍然在老旧项目中蹒跚踯躅的人分享我的一些切身体会。

    剧透一下:今天的PHP依然有些很糟糕的设计,就像几乎所有的编程语言都有它的怪癖一样。很多PHP核心函数的方法签名仍然不一致,它的配置设置仍然很混乱,许多开发人员仍在编写蹩脚的PHP代码,因为他们不得不这样做,或者因为他们不了解更好的写法。

    今天我想在这里分享的是PHP的阳光的一面,让我们把注意力放在那些已经发生了变化的地方,以及可以帮助大家编写干净且可维护的PHP代码的方法。接下来的几分钟内,我希望大家先抛开任何偏见来阅读。

    读完会,你可以自由地和以前一样思考PHP。尽管有很大的机会,你会对过去几年PHP所取得的下列进步感到惊讶:

    每年都会有一个新的PHP版本在活跃地开发。

    新的PHP性能至少是PHP5时代的两倍,可能已经达到了三倍。

    有一个非常活跃的涵盖了框架、包和平台的生态系统。

    在过去的几年里,PHP增加了许多新特性,并且语言自身在不断发展。

    静态分析工具在过去几年已经成熟,并且会不断增长。

    下面我会附上我的一个业余项目的源代码来解释说明,它是用PHP和Laravel编写。这里是我们在办公室维护的几百个OSS包的列表。这两个都是现代PHP项目的好例子。

    让我们开始吧。

    历史总结

    为了更好地衡量,让我们今天快速回顾一下PHP的发布周期。我们现在使用的是PHP 7.3版本,预计2019年底将发布7.4版本。而PHP 8.0版本将是7.4版本之后的下一个版本。

    从5.* 时代后期开始,PHP核心开发团队就努力保持一年一个新版本的发布周期,并且在过去的四年中成功地做到了这一点。

    总的来说,每一个新版本都会得到核心团队两年的积极支持,再加上一年的“仅提供安全补丁”的支持。目标是鼓励PHP开发人员尽可能地使用最新版本。因为每年进行小的升级要比从5.4版本直接升级到7.0版本容易得多。

    关于PHP版本发布/更新的日程安排的最新情况,可以在这里找到(https://www.php.net/supported-versions.php)。

    最后提一下,PHP 5.6是5.* 的最后一个版本,它的下一个版本就是7.0版。如果你想知道PHP 6发生了什么,可以收听PHP Roundtable上的这个播客音频(https://www.phproundtable.com/episode/what-happened-to-php-6)。

    从那里,我们可以认清关于现代PHP的一些常见误解。

    PHP的性能

    回到PHP 5.*时代,那时候PHP的性能在最好的情况下也只是中等。然而,到了7.0版本后,PHP核心的大部分被从头开始重写,这将它的性能提高了两到三倍。

    光用言语不能证明这一点。让我们看看基准测试的结果。幸运的是,有人在PHP性能的基准测试上投入了大量时间。我发现Kinsta(https://kinsta.com/blog/php-benchmarks/)的这篇文章提供了一个最新的不同版本的性能比较列表。

    自从7.0升级以来,性能提高了如些之多。以至于PHPWeb应用程序的性能已经可以和其他语言的Web框架相当(在某些情况下甚至更好)。看看这个扩展的基准测试套件(https://github.com/the-benchmarker/web-frameworks),可以得到更多信息。

    当然,PHP框架在性能上不会优于C和Rust,但是它们确实比Rails或Django要好得多,并且与ExpressJS相当。

    框架和生态系统

    说到框架:PHP不再只是WordPress了。作为一个专业的PHP开发人员,让我告诉你一件事:WordPress在任何方面都不再能代表当代的PHP生态系统。

    总的来说,PHP有两个主要的Web应用程序框架:Symfony和Laravel。当然还有几个较小的框架,如Zend, Yii, Cake,Code Igniter等等。但是如果你想了解现代PHP开发是什么样子,你最好擅长使用这两个主要框架中的一个。

    这两个框架都有一个由软件包和产品组成的大型生态系统。从管理面板,CRM,到独立软件包,从CodeIgniter(简称CI)到profiler,从Web套接字服务器、队列管理器、至支付集成等众多服务。老实说,这里有太多要列出的内容。

    不过,这些框架都是为实际开发需要而设计的。如果你需要纯粹的内容管理,像WordPress和CraftCMS这样的平台只会越来越完善。

    衡量PHP生态系统当前状态的一种方法是查看Packagist,它是PHP主要软件包的代码仓库。它现在以指数级别快速增长。每天下载量为2500万次,可以公平地说,PHP生态系统已经不像以前那样地处于劣势。

    下面这张图展示了随着时间的推移,包和版本的数量增长情况。这张图可以在Packagist官网上找到。

    除了应用程序框架和CMS之外,我们还看到了异步框架在过去几年的兴起。

    这些用PHP或其他语言编写的框架和服务器,允许用户运行真正的异步PHP。异步框架的例子包括Swoole、Amp和ReactPHP。

    我们已经步入了一个异步编程的世界,像Web套接字和具有大量IO的应用程序之类的东西实际上已经越来越被PHP世界所关注。

    PHP内部邮件列表-这个核心开发人员讨论语言开发的地方,也在讨论把libuv添加到内核中来支持异步编程。对于那些不了解libuv的人来说,可以认为libuv是Node.js用于允许所有异步性的一个库。

    PHP语言本身

    虽然async和await这两个特性现在还不可用,但是在过去的几年里,PHP语言本身已经有了很多改进。下面是一个非详尽的PHP新特性列表:

    短闭包(Short closures):https://stitcher.io/blog/short-closures-in-php

    Null合并运算符:https://stitcher.io/blog/shorthand-comparisons-in-php#null-coalescing-operator

    Traits(注:一种为PHP这样的单继承语言而设计准备的代码复用机制):https://www.php.net/manual/en/language.oop5.traits.php

    属性类型化(Typed properties):https://stitcher.io/blog/new-in-php-74#typed-properties-rfc

    扩展运算符(Spread operator):https://wiki.php.net/rfc/argument_unpacking

    即时编译器(JIT compiler):https://wiki.php.net/rfc/jit

    外部函数接口(FFI):https://wiki.php.net/rfc/ffi

    匿名类:https://www.php.net/manual/en/language.oop5.anonymous.php

    声明返回类型:https://www.php.net/manual/en/functions.returning-values.php#functions.returning-values.type-declaration

    现代加密库:https://wiki.php.net/rfc/libsodium

    生成器:https://wiki.php.net/rfc/generators

    很多其它特性:https://www.php.net/ChangeLog-7.php

    当我们讨论编程语言特性的主题时,让我们也来谈谈当今编程语言的发展过程。首先有一个活跃的核心志愿者团队,他们推动了编程语言的发展。同时开发社区成员可以提出RFC。

    接下来,这些RFC 会在“内部”邮件列表中讨论,邮件列表可以在线阅读。在新的语言特性被添加之前,必须进行投票。只有得到三分之二核心团队同意的RFC才允许被添加进来。

    允许投票的可能有约100人,但是并不要求每个人都对每个RFC投票。核心团队的成员当然可以投票,因为他们必须维护代码库。除了他们之外,还有从PHP社区中单独挑选出来的人可以投票。这些人包括PHP文档的维护者、整个PHP项目的贡献者以及PHP社区中的杰出开发人员。

    虽然大多数核心开发都是在自愿的基础上完成的,但最近JetBrains雇佣了一名核心PHP开发人员Nikita Popov来做全职开发工作。另一个例子是Linux基金会最近决定投资Zend Framework开源框架。这样的雇佣和收购确保了PHP未来发展的稳定性。

    工具

    除了PHP核心本身,在过去的几年里,我们看到了围绕PHP开发的工具的增加。首先我们想到的是静态代码分析工具,像Vimeo团队开发的Psalm,以及Phan和PHPStan。

    这些工具将静态分析你的PHP代码并报告任何类型错误,以及可能导致的bug等等。在某种程度上,它们提供的功能可以与TypeScript相媲美。但是PHP现在不提供转换(transpile),所以不允许使用自定义语法。

    尽管这意味着我们需要依赖docblocks,但是PHP之父Rasmus Lerdorf确实提到了在核心中添加静态分析引擎的想法。虽然潜力巨大,但这也是一项艰巨的任务。

    说到转换(transpiling)。受到 JavaScript 社区的启发,目前 已经已经有人开始在用户领域扩展PHP语法。一个名为Pre的项目就是这样做的,它允许新的PHP语法转换为普通的 PHP 代码。

    虽然这个想法已经在 JavaScript 中被证明可行,但是只有先提供了适当的IDE和静态分析支持,它才能在PHP中工作。这是一个非常有趣的想法,但它必须经历一个成长过程才能称为“主流”。

    结语

    虽然说了这么多,但是你仍然可以把PHP看作是一种蹩脚的语言。这门语言确实有其缺点和20年的传承包袱,但是我可以自信地说,我喜欢用它工作。

    根据我的经验,我能够用它来创建可靠的,可维护的和高质量的软件。我为之工作的客户和我一样,他们对最终的结果很满意。

    虽然用PHP仍然可能做出很多混乱的事情,但如果使用得当和正确的话,我会说这是Web开发的一个很好的选择。

    原文: https://stitcher.io/blog/php-in-2019

    本文为 CSDN 翻译,转载请注明来源出处。

    作者 | Brent

    译者 | 苏本如,责编 | 屠敏

    展开全文
  • Oppenheimer 在他的论文Real Time Design and Animation of Fractal Plants and Trees 中的递归算法。 安装 要安装此工具,您只需要安装以下依赖项。 然后,您可以下载项目并从命令行 ( python ./run_generator.py ...
  • Built with / example site

    2020-11-30 06:53:00
    <div><p>I've looked but I'm finding it tough to find an ...d be happy to build the backend if someone wants to help design the front end?</p><p>该提问来源于开源项目:frctl/fractal</p></div>
  • <div><p><strong>Is your feature request ...<a href="https://github.com/storybooks/storybook">Storybook, <a href="https://fractal.build/guide/web/">Fractal, <a href="https://patternlab.io/">Patternlab, ...
  • m just a bit under impression of <a href="http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/">this large and extensive article</a>. Along with bringing up <em>overwhelming</em> amount ...
  • <div><p><strong>Preface As a way to learn about CCF and... The whole is made of fractal-like subnets, but operates as if it were one CCF network.</p><p>该提问来源于开源项目:microsoft/CCF</p></div>
  • <p>Since fractal design originates in the Elm architecture, I discussed this with a collegue who knows more about Elm than I do. The way he handled this, and had seen others in the Elm community ...
  • It is desirable as soon as possible, I was looking for a new modular design of sites with a lot of inner pages. Fractal impressed me very much, but as Node.js, I do not know, I lit a deadline and I ...
  • File/Examples/Advance/Fractal (Auto F5) F6 (as a use case, being bored, knowing this is many minutes) File/(open something else to work on) New window (W2) opens. W2 console shows file loaded design ....
  • <ul><li>[ ] Add <code>.npmignore</code> for files</li><li>dotfiles should be ignored</li><li>fractal files should be ignored</li><li>[ ] <code>globals</code></li>[ ] Remove <code>globals/assets</code>...
  • * This latter design of <code>ConstraintSystem</code> enables a centralized implementation of (optional) optimizations such as * swapping the A and B matrices (useful for Groth16), * balancing the ...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

designfractal