跳到主要内容

315打假

· 阅读需 3 分钟
Quany
软件工程师

一、食品安全:从“舌尖隐患”到贴身风险

  1. 翻新卫生巾/纸尿裤产业链
    梁山希希纸制品有限公司收购残次品卫生巾、婴儿纸尿裤,经简单翻新后贴上“麦酷酷”“自由点”等品牌标签二次销售,威胁女性健康。涉事企业已被查封,负责人被控制,济宁市启动专项整治行动。

  2. 保水虾仁“注冰增重”
    盐城海创源等企业通过过量添加保水剂(磷酸盐超标30倍)和包冰工艺增重,1斤冻虾仁解冻后仅剩3两虾肉,且隐瞒添加剂信息。市场监管总局已介入调查。

  3. 一次性内裤徒手制作不灭菌
    河南商丘多家代工厂(如梦阳服饰)在垃圾堆旁徒手缝制内裤,使用含苯系物的“枪水”去污,产品菌落超标12倍,浪莎、初医生等品牌涉事。商丘市监局已查封涉事车间。


二、数字经济与隐私安全:技术滥用成重灾区

  1. AI骚扰电话产业链
    智优擎科技等企业利用AI外呼机器人(日拨10万次)和虚拟运营商“小号”(无需实名),形成骚扰电话黑色产业链。工信部已关停涉事线路并核查数据。

  2. 隐私窃取“信息黑洞”
    云企智能、绿信科技通过嵌入短视频平台的“获客软件”,1分钟窃取6条用户隐私数据,日处理量达百亿条。国家网信办将开展专项整改。

  3. 手机抽奖连环陷阱
    诺诺网等平台通过自动跳转抽奖页面诱导充值,用户需连续6个月充值4000元才能用完“200元话费券”,80%用户中途放弃。


三、服务乱象:从“维修刺客”到金融陷阱

  1. 啄木鸟维修平台虚报故障
    国内最大维修平台“啄木鸟”培训员工虚构故障(如开个水龙头收费100元),燃气灶换点火器成本20元却收250元,平台抽佣40%。重庆市场监管局已进驻调查。

  2. 电子签高利贷套路
    借贷宝、人人信平台以“砍头息”(如借款5000元实收3500元)和展期费牟利,年化利率近6000%,放贷人使用虚假身份规避法律追责。


四、其他重点曝光问题

非标电线电缆:南宁、贵阳五金市场售卖未达国标的电线,安全隐患严重。 • 黄桃罐头黑幕:个别厂家使用烂桃翻新,篡改生产日期。


五、监管部门行动

市场监管总局:全面彻查“保水虾仁”、非标电线等违法行为,拟于5月上线“全国食品安全举报系统”。 • 工信部:关停骚扰电话线路,清理违法外呼软件。 • 地方政府:山东济宁、河南商丘等地连夜查封涉事企业并启动专项整治。

如需查看完整曝光名单和案例细节,可参考央视财经、新京报等权威报道。

微信公众号

微信公众号

这周发生了什么

· 阅读需 6 分钟
Quany
软件工程师

以下是这周编程技术领域的一些重要动态:

工具与平台更新

  • JDK 24 进入发布阶段:JDK 24 已进入首个候选发布阶段,计划于2025年3月18日正式发布。它包含24项新特性,涵盖核心Java库、语言规范、安全库、HotSpot和Java工具等方面。
  • 字节跳动Trae国内版上线:字节跳动的AI编程产品Trae国内版正式上线,配置了先进的AI模型,支持代码补全、理解、Bug修复及自然语言生成代码等功能,为开发者提供高效、智能化的编程体验。

行业趋势

  • AI主导代码生产趋势加速:Anthropic CEO预测,未来3到6个月内AI将编写90%的代码,一年内几乎包揽全部编程工作。这一趋势促使开发者提升AI相关技能,同时也引发对软件工程师职业前景的思考。
  • 低代码/无代码平台兴起:低代码和无代码平台使开发更加便捷,无需深厚编程知识即可构建强大应用,有助于简化开发流程、缩短产品上市时间并促进快速创新。

未来展望

  • AI编程工具持续进化:AI编程助手将更加智能,能够更好地理解开发者意图,自动生成高质量代码,并在代码优化、调试等方面提供更强大支持。
  • 量子计算与编程融合加深:随着量子计算技术的发展,未来可能出现专门针对量子计算的编程语言和工具,推动量子计算在更多领域的应用。

这些动态反映了编程技术领域的快速发展和变革,开发者需要不断学习和适应新技术,以保持竞争力。

----------------------------Flutter

以下是Flutter中常见的状态管理方案:

  1. Provider:由Flutter官方推荐,基于依赖注入,简单易用,适合中小型应用。
  2. Getx:全能框架,用于状态管理、路由和依赖注入,非常适用于低到中等复杂度的应用程序。
  3. Riverpod:由Provider的作者开发,功能更强大、灵活且类型安全,状态管理与BuildContext解耦,适用于大型应用的开发。

以下是目前Flutter中最流行的状态管理方案:

1. Riverpod

  • 特点:由Provider的作者开发,功能更强大、灵活且类型安全,状态管理与BuildContext解耦,适用于大型应用的开发。
  • 使用示例
    final counterProvider = StateNotifierProvider<CounterModel, int>((ref) {
    return CounterModel();
    });

    class CounterModel extends StateNotifier<int> {
    CounterModel() : super(0);

    void increment() {
    state++;
    }
    }

    void main() {
    runApp(ProviderScope(child: MyApp()));
    }

    class MyApp extends StatelessWidget {

    Widget build(BuildContext context) {
    return MaterialApp(
    home: Scaffold(
    appBar: AppBar(title: Text('Riverpod Example')),
    body: Center(
    child: Consumer(
    builder: (context, ref, child) {
    final count = ref.watch(counterProvider);
    return Text('Count: $count');
    },
    ),
    ),
    floatingActionButton: FloatingActionButton(
    onPressed: () => context.read(counterProvider.notifier).increment(),
    child: Icon(Icons.add),
    ),
    ),
    );
    }
    }
  • 优点:解耦上下文,类型安全,易于测试,支持异步状态。

2. Provider

  • 特点:Flutter官方推荐的状态管理方案之一,基于依赖注入,简单易用,适合中小型应用。
  • 使用示例
    class Counter with ChangeNotifier {
    int _count = 0;
    int get count => _count;

    void increment() {
    _count++;
    notifyListeners();
    }
    }

    void main() {
    runApp(
    ChangeNotifierProvider(
    create: (context) => Counter(),
    child: MyApp(),
    ),
    );
    }

    class MyApp extends StatelessWidget {

    Widget build(BuildContext context) {
    return MaterialApp(
    home: Scaffold(
    appBar: AppBar(title: Text('Provider Example')),
    body: Center(
    child: Consumer<Counter>(
    builder: (context, counter, child) {
    return Text('Count: ${counter.count}');
    },
    ),
    ),
    floatingActionButton: FloatingActionButton(
    onPressed: () => Provider.of<Counter>(context, listen: false).increment(),
    child: Icon(Icons.add),
    ),
    ),
    );
    }
    }

3. Getx

  • 特点:全能框架,用于状态管理、路由和依赖注入,非常适用于低到中等复杂度的应用程序。
  • 使用示例
    void main() => runApp(MaterialApp(home: Home()));

    class Home extends StatelessWidget {
    var count = 0.obs;


    Widget build(context) => Scaffold(
    appBar: AppBar(title: Text("counter")),
    body: Center(
    child: Obx(() => Text("$count")),
    ),
    floatingActionButton: FloatingActionButton(
    child: Icon(Icons.add),
    onPressed: () => count++,
    ));
    }
  • 优点:简单易用,性能优秀,内置依赖注入和路由管理功能。

4. Redux

  • 特点:具有集中式存储、操作和减速器的可预测状态管理,适用于需要强大可预测性和工具的应用程序。
  • 使用示例
    enum Actions { Increment }

    int counterReducer(int state, dynamic action) {
    return action == Actions.Increment ? state + 1 : state;
    }

    void main() {
    final store = Store<int>(counterReducer, initialState: 0);
    runApp(FlutterReduxApp(title: 'Flutter Redux Demo', store: store));
    }

    class FlutterReduxApp extends StatelessWidget {
    final Store<int> store;
    final String title;

    FlutterReduxApp({Key key, this.store, this.title}) : super(key: key);


    Widget build(BuildContext context) {
    return StoreProvider<int>(
    store: store,
    child: MaterialApp(
    theme: ThemeData.dark(),
    title: title,
    home: Scaffold(
    appBar: AppBar(title: Text(title)),
    body: Center(
    child: Column(
    mainAxisAlignment: MainAxisAlignment.center,
    children: [
    StoreConnector<int, String>(
    converter: (store) => store.state.toString(),
    builder: (context, count) {
    return Text(
    'The button has been pushed this many times: $count',
    style: Theme.of(context).textTheme.display1,
    );
    },
    )
    ],
    ),
    ),
    floatingActionButton: StoreConnector<int, VoidCallback>(
    converter: (store) {
    return () => store.dispatch(Actions.Increment);
    },
    builder: (context, callback) {
    return FloatingActionButton(
    onPressed: callback,
    tooltip: 'Increment',
    child: Icon(Icons.add),
    );
    },
    ),
    ),
    ),
    );
    }
    }

5. BLoC

  • 特点:通过将业务逻辑与UI分离,便于代码复用和测试,适合中大型应用。
  • 使用示例
    class CounterBloc {
    final _counterController = StreamController<int>();
    Stream<int> get counter => _counterController.stream;

    int _count = 0;
    void increment() {
    _count++;
    _counterController.sink.add(_count);
    }

    void dispose() {
    _counterController.close();
    }
    }

    void main() {
    final counterBloc = CounterBloc();
    runApp(Provider.value(value: counterBloc, child: MyApp()));
    }

    class MyApp extends StatelessWidget {

    Widget build(BuildContext context) {
    return MaterialApp(
    home: Scaffold(
    appBar: AppBar(title: Text('BLoC Example')),
    body: Center(
    child: StreamBuilder<int>(
    stream: Provider.of<CounterBloc>(context).counter,
    builder: (context, snapshot) {
    return Text('Count: ${snapshot.data ?? 0}');
    },
    ),
    ),
    floatingActionButton: FloatingActionButton(
    onPressed: () => Provider.of<CounterBloc>(context).increment(),
    child: Icon(Icons.add),
    ),
    ),
    );
    }
    }

6. MobX

  • 特点:采用响应式编程,简化状态管理,适合需要灵活状态管理的项目。
  • 使用示例
    class CounterStore {

    int count = 0;


    void increment() {
    count++;
    }
    }

    void main() {
    final store = CounterStore();
    runApp(Provider.value(value: store, child: MyApp()));
    }

    class MyApp extends StatelessWidget {

    Widget build(BuildContext context) {
    return MaterialApp(
    home: Scaffold(
    appBar: AppBar(title: Text('MobX Example')),
    body: Center(
    child: Observer(
    builder: (_) => Text('Count: ${Provider.of<CounterStore>(context).count}'),
    ),
    ),
    floatingActionButton: FloatingActionButton(
    onPressed: () => Provider.of<CounterStore>(context).increment(),
    child: Icon(Icons.add),
    ),
    ),
    );
    }
    }

这些状态管理方案各有优缺点,选择哪种方案取决于项目的具体需求和复杂度。

flutter 待加库

  • flutter_native_splash:启动屏

微信公众号

微信公众号

老婆生日

· 阅读需 2 分钟
Quany
软件工程师

待办事项

  • 设置页
  • 排队页面

根据2025年的最新规定,自动挡(C2)驾照考试内容主要包括以下四个科目:

科目一:理论考试

  • 考试内容:交通法规、道路标志、安全文明驾驶等相关知识。
  • 考试形式:计算机答题,题库与手动挡驾照相同。

科目二:场地驾驶技能考试

  • 考试项目包括:
    • 倒车入库。
    • 侧方停车。
    • 曲线行驶。
    • 直角转弯。
  • 注意:2025年起,自动挡科目二取消了“坡道定点停车和起步”项目,考试内容由5项减少为4项。

科目三:道路驾驶技能考试

  • 考试项目包括:
    • 上车准备、起步。
    • 直线行驶、变更车道。
    • 靠边停车。
    • 直行通过路口、路口左转弯、路口右转弯。
    • 通过人行横道线、通过学校区域、通过公共汽车站。
    • 会车、超车、掉头。
    • 夜间行驶。
  • 注意:自动挡科目三考试取消了“加减挡操作”项目。

科目四:安全文明驾驶常识考试

  • 考试内容:安全文明驾驶常识、应对突发状况的处理能力。
  • 考试形式:计算机答题,题库与手动挡驾照相同。

总结

自动挡驾照考试整体难度相对手动挡较低,特别是在科目二和科目三中,取消了“坡道定点停车和起步”以及“加减挡操作”等项目,更加贴近实际驾驶需求。

微信公众号

微信公众号

中关村办公

· 阅读需 1 分钟
Quany
软件工程师

待办事项

  • app 开发
  1. 协同问题:测试在等我们这边交付功能,希望做完一个功能测一个;
  2. 有些接口已经完成;

Android gradle flutter 脚本

packages/flutter_tools/gradle/src/main/groovy/flutter.groovy

改 ndk 版本

规范

  • 命名规范:驼峰命名法,首字母小写;

开发工具

Android Studio

微信公众号

微信公众号

Flutter for Restro

· 阅读需 3 分钟
Quany
软件工程师

介绍

Restro

figma 设计

git@gitlab.suixingpay.com:wang_sb/flutter_resto_demo.git

https://restosuite.sg.larksuite.com/wiki/M5z1wnh9AiN7OLkXFZklBglEged

https://www.figma.com/design/nyVmeDET90AY92wTh7Xbx0/%E9%A2%84%E8%AE%A2-APP?node-id=407-45570&m=dev

Flutter

国内镜像:

export PUB_HOSTED_URL="https://pub.flutter-io.cn"
export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"

flutter 基础框架

特性

  • 状态管理:GetX
  • 路由管理:GetX
  • 路由拦截:middlewares
  • 路由 Controller 绑定:GetPage -> binding
  • 全局 Controller 绑定: app.dart -> initialBinding
  • 网络请求封装:commons/ajax.dart -> dio
  • 主题切换:GetX
  • 枚举:封装 enums
  • 区分环境配置: config
  • 本地存储、区分 local 和 session 级别:commons/storage.dart
  • iconfont 图标:脚本基于 iconfont.json 生成
  • 国际化:GetX
  • 全局错误捕获上报服务器
  • MVVM 模式:models/pages/controllers+services
  • 日志管理:commons/logger.dart
  • 启动屏:纯 Flutter 组件方式实现,如果是 android 或 ios 可以考虑使用 flutter_native_splash + Flutter组件方式,避免白屏 + 处理业务逻辑
  • 屏幕适配(缩放):flutter_screenutil
  • 代码生成 build_runner + 自定义脚本
  • 代码规范:git_hooks
  • app 版本检测,下载新的版本
  • 如何做热更新或者类似热更新
  • 依赖注入:injectable
  • 权限管理:permission_handler 处理相机、存储、GPS等权限 app_settings 让用户跳转到系统设置页

代码生成

通过代码生成,简化开发流程,提高开发效率。

基础代码生成

  • models 生成: 基于 json_serializable 做*.g.dart相关文件生成
  • iconfont:基于builder/iconfont_builder.dart 生成 gen/icon_font.gen.dart
  • assets: 基于flutter_gen 做资源文件生成 gen/assets.gen.dart

注意:项目拉取下来之后,首先通过如下命令生成代码。

# 清除缓存
dart run build_runner clean

# 生成代码 强制覆盖已存在的生成文件
dart run build_runner build --delete-conflicting-outputs

生成页面

基于bin/create_page.dart 生成 pages/controllers/services 修改路由文件routes/app_routes.dart

参数说明:

  1. --name=xxx 指定名称
  2. -y 强制覆盖已存在文件

最终会生成:

  1. 创建:pages/test_user/test_user_page.dart;
  2. 创建:controllers/test_user_controller.dart;
  3. 创建:services/test_user_service.dart;
  4. 修改:routes/app_routes.dart
# 例如生成一个test_user页面

dart bin/create_page.dart --name=test_user -y

打开模拟器

flutter emulators
flutter emulators --launch <模拟器名称>

区分环境配置

项目中,区分环境配置主要是通过RUN_ENV变量来实现的,在lib/config/config.dart中根据RUN_ENV变量来配置不同的环境。

# 开发环境
flutter run --dart-define=RUN_ENV=dev

# 生产环境
flutter run --dart-define=RUN_ENV=production

# 测试环境
flutter run --dart-define=RUN_ENV=test

# 打包Android
flutter build apk --release --shrink --dart-define=RUN_ENV=production

# 打包iOS
flutter build ios --dart-define=RUN_ENV=production

代码规范

项目中,代码规范主要是通过analysis_options.yaml文件来实现的。

git_hooks结合,提交时检测:

# 安装 git_hooks
dart bin/git_hooks_init.dart

# 卸载 报错忽略,库有问题,其实已经卸载了
dart bin/git_hooks_un_install.dart

测试

Flutter 约定测试文件放在/test目录中,测试文件以_test.dart结尾,例如test/widget_test.dart

运行测试:

flutter test

参考文档

微信公众号

微信公众号

风筝

· 阅读需 1 分钟
Quany
软件工程师

代办事项

  • 扫普通链接二维码打开小程序,兼容支付宝小程序

微信公众号

微信公众号

门铃

· 阅读需 1 分钟
Quany
软件工程师

二维码门铃

解决快递员,拜访联系

Delphi 是一种由 Borland 公司(现为 Embarcadero Technologies)推出的可视化集成开发环境(IDE),主要用于快速应用程序开发(RAD)。它是一种基于 Object Pascal 的编程语言,结合了强大的可视化设计工具和高效的编译器,使得开发者能够快速创建 Windows 应用程序,支持创建高度复杂的图形用户界面(GUI)应用程序,适用于多种场景,包括但不限于商业软件、工业控制系统、数据库管理工具等。

微信公众号

微信公众号

儿童备用药

· 阅读需 2 分钟
Quany
软件工程师

为孩子准备一些常备药物可以帮助应对常见的小病小痛。以下是一些适合儿童的常备药物,但请在使用前仔细阅读说明书,并遵循医生或药剂师的建议:

1. 退烧药

  • 对乙酰氨基酚(如泰诺林):适用于3个月以上的婴儿和儿童,用于退烧和缓解轻至中度疼痛。
  • 布洛芬(如美林):适用于6个月以上的婴儿和儿童,用于退烧和缓解疼痛。

2. 感冒药

  • 抗组胺药(如氯雷他定、西替利嗪):用于缓解过敏症状,如流鼻涕、打喷嚏。
  • 止咳药(如右美沙芬):用于缓解咳嗽症状,但请注意不要给6岁以下的儿童使用。

3. 止泻药

  • 蒙脱石散(如思密达):用于治疗腹泻,保护肠道黏膜。
  • 口服补液盐(如ORS):用于预防和治疗脱水。

4. 抗过敏药

  • 氯雷他定(如开瑞坦):用于缓解过敏症状,如荨麻疹、过敏性鼻炎。
  • 西替利嗪(如仙特明):用于缓解过敏症状,适用于2岁以上的儿童。

5. 外用药

  • 碘伏:用于消毒伤口,预防感染。
  • 创可贴:用于小伤口的止血和保护。
  • 炉甘石洗剂:用于缓解皮肤瘙痒,如蚊虫叮咬、湿疹等。

6. 维生素和矿物质补充剂

  • 维生素D滴剂:用于预防和治疗维生素D缺乏,促进钙吸收。
  • 铁剂:用于预防和治疗缺铁性贫血,但需在医生指导下使用。

7. 其他

  • 益生菌:用于调节肠道菌群,改善消化不良。
  • 退热贴:用于辅助退烧,缓解发热不适。

使用注意事项

  • 严格按照说明书或医生的建议使用药物,特别是剂量和适用年龄。
  • 不要自行给儿童使用成人药物,因为儿童的肝肾功能尚未完全发育,可能无法代谢成人药物。
  • 定期检查药物的有效期,过期药物不要使用。
  • 将药物存放在儿童无法触及的地方,避免误服。

希望这些信息对您有帮助。如果孩子出现严重症状或持续不适,请及时就医。

微信公众号

微信公众号

深度思考

· 阅读需 1 分钟
Quany
软件工程师

待解决问题

  • 登录失效,请重新登录

短信类型填 5

微信公众号

微信公众号

李艳桃浓

· 阅读需 1 分钟
Quany
软件工程师

共享充电宝项目

代理商小程序

git 地址: http://47.93.239.122:8070/gao_yl/power-bank-merchants.git

基础建设

  • Ajax请求封装
  • 主题色配置

制作功能

  • 登录
  • 注册
  • 忘记密码
  • 首页
  • 海报

用户小程序

git 地址: http://47.93.239.122:8070/gao_yl/power-bank.git

基础建设

  • Ajax请求封装
  • 主题色配置

制作功能

  • 首页
  • 隐私
  • 登录
  • 手机号注册
  • 地图
  • 出设备页面
  • 个人中心
  • 订单列表
  • 订单详情

官网

git 地址: http://47.93.239.122:8070/gao_yl/power-bank.git

  • 可放至 h5 页面:比如邀请注册代理商,常见问题等;

微信公众号

微信公众号